Skip to content

Instantly share code, notes, and snippets.

@Dirrk
Created January 25, 2016 05:34
Show Gist options
  • Select an option

  • Save Dirrk/2b60d50b5702f395d9b3 to your computer and use it in GitHub Desktop.

Select an option

Save Dirrk/2b60d50b5702f395d9b3 to your computer and use it in GitHub Desktop.

Revisions

  1. Dirrk created this gist Jan 25, 2016.
    300 changes: 300 additions & 0 deletions plex-dashboard.xml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,300 @@
    <dashboard>
    <label>plex-dashboard</label>
    <row>
    <panel>
    <chart>
    <title>Plex memory usage last hour</title>
    <search>
    <query>index="os" source=ps COMMAND=Plex | rex field=ARGS ".*?-i_.*\/data\/store.*\/(?&lt;t_file&gt;.*?)_-(?:filter|map_inline|map_[\d])" | rex field=ARGS "Plug.*\/(?&lt;plugin_name&gt;.*)$" | eval memMB=mem_used/1048576 | eval name=if(ARGS LIKE "New_Transcoder%",t_file,if(ARGS LIKE "Plug-in%", plugin_name, ARGS)) | timechart avg(memMB) by name</query>
    <earliest>rt-1h</earliest>
    <latest>rt</latest>
    </search>
    <option name="charting.chart">line</option>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.showDataLabels">none</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">default</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisEnd</option>
    <option name="charting.legend.placement">right</option>
    <option name="charting.axisTitleX.text">Last Hour</option>
    </chart>
    </panel>
    <panel>
    <chart>
    <title>Plex CPU Usage last hour</title>
    <search>
    <query>index=os sourcetype=ps COMMAND=Plex | rex field=ARGS ".*?-i_.*\/data\/store.*\/(?&lt;t_file&gt;.*?)_-(?:filter|map_inline|map_[\d])" | rex field=ARGS "Plug.*\/(?&lt;plugin_name&gt;.*)$" | eval memMB=mem_used/1048576 | eval name=if(ARGS LIKE "New_Transcoder%",t_file,if(ARGS LIKE "Plug-in%", plugin_name, ARGS)) | timechart avg(pctCPU) by name</query>
    <earliest>rt-1h</earliest>
    <latest>rt</latest>
    </search>
    <option name="charting.chart">line</option>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.showDataLabels">none</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">default</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisEnd</option>
    <option name="charting.legend.placement">right</option>
    <option name="charting.axisTitleX.text">Last Hour</option>
    <option name="charting.axisY.maximumNumber">100</option>
    <option name="charting.axisY.minimumNumber">0</option>
    </chart>
    </panel>
    </row>
    <row>
    <panel>
    <chart>
    <title>Plex storage</title>
    <search>
    <query>index=os sourcetype=df mount=/data/* | eval mountName=substr(mount,7)+" "+Size | stats avg(PercentFreeSpace) as "Free %", avg(PercentUsedSpace) as "Used %", by mountName</query>
    <earliest>-15m</earliest>
    <latest>now</latest>
    </search>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.maximumNumber">100</option>
    <option name="charting.axisY.minimumNumber">0</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart">bar</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.showDataLabels">all</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">stacked100</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
    <option name="charting.legend.placement">right</option>
    </chart>
    </panel>
    <panel>
    <chart>
    <title>Overall storage</title>
    <search>
    <query>index="os" source=df mount=/data/* | stats avg(TotalMBytes) as TotalMBytes_avg, avg(UsedMBytes) as UsedMBytes_avg, avg(FreeMBytes) as FreeMBytes_avg by mount | stats sum(TotalMBytes_avg) as TotalMBytes_sum, sum(UsedMBytes_avg) as UsedMBytes_sum, sum(FreeMBytes_avg) as FreeMBytes_sum | eval avg_used=(UsedMBytes_sum/TotalMBytes_sum)*100 | table avg_used</query>
    <earliest>-15m</earliest>
    <latest>now</latest>
    </search>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart">radialGauge</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.rangeValues">[0,30,70,100]</option>
    <option name="charting.chart.showDataLabels">none</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">default</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.gaugeColors">["0x84E900","0xFFE800","0xBF3030"]</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
    <option name="charting.legend.placement">right</option>
    </chart>
    </panel>
    <panel>
    <chart>
    <title>Average cpu</title>
    <search>
    <query>source=cpu cpu=all | stats avg(PercentUserTime) as avg_user, avg(PercentSystemTime) as avg_system | eval avgCPU=avg_user+avg_system | stats values(avgCPU)</query>
    <earliest>rt-5m</earliest>
    <latest>rt</latest>
    </search>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart">radialGauge</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.showDataLabels">none</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">default</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
    <option name="charting.legend.placement">right</option>
    </chart>
    </panel>
    <panel>
    <chart>
    <title>Current Memory Usage</title>
    <search>
    <query>index="os" source=ps | eval memMB=mem_used/1048576 | stats avg(memMB) as avg_mb by pid | stats sum(avg_mb) as "Memory (MB)"</query>
    <earliest>rt-5m</earliest>
    <latest>rt</latest>
    </search>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart">radialGauge</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.rangeValues">[0,2000,4000,8000,12000,16000]</option>
    <option name="charting.chart.showDataLabels">none</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">default</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.gaugeColors">["0x84E900","0xFFE800","0xfac61d","0xf7912c","0xd13b3b"]</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
    <option name="charting.legend.placement">right</option>
    </chart>
    </panel>
    </row>
    <row>
    <panel>
    <table>
    <title>Top 10 Users By Time Last 30 Days</title>
    <search>
    <query>index="plex-status" status=playing | top user | fields user, count | eval Hours=round(count / 60) | head 20 | rename user as "Username" | fields - count</query>
    <earliest>-30d@d</earliest>
    <latest>now</latest>
    </search>
    <option name="wrap">true</option>
    <option name="rowNumbers">false</option>
    <option name="dataOverlayMode">none</option>
    <option name="drilldown">cell</option>
    <option name="count">10</option>
    </table>
    </panel>
    <panel>
    <table>
    <title>Top Movies Last 30 Days</title>
    <search>
    <query>index=plex-status NOT show=* | stats dc(user) as count by title | sort -count | head 10</query>
    <earliest>-30d@d</earliest>
    <latest>now</latest>
    </search>
    <option name="wrap">undefined</option>
    <option name="rowNumbers">undefined</option>
    <option name="drilldown">row</option>
    <option name="dataOverlayMode">none</option>
    <option name="count">10</option>
    </table>
    </panel>
    <panel>
    <table>
    <title>Top Shows last 30 Days</title>
    <search>
    <query>index="plex-status" status=playing plexType=episode | stats count by user, title, show, date_mday | stats count as "Episodes watched" by show | sort -"Episodes watched" | head 10</query>
    <earliest>-30d@d</earliest>
    <latest>now</latest>
    </search>
    <option name="wrap">true</option>
    <option name="rowNumbers">false</option>
    <option name="drilldown">cell</option>
    <option name="dataOverlayMode">none</option>
    <option name="count">10</option>
    </table>
    </panel>
    <panel>
    <table>
    <title>Most transcoded past 7 days</title>
    <search>
    <query>index="plex-status" status=playing | eval newTitle=if(plexType=="episode",show,title) | eval transcoding=if(video_transcoding=="transcode",1,0) | eval direct_play=if(video_transcoding=="transcode",0,1) | stats count by user, date_mday, newTitle, transcoding, direct_play | stats sum(direct_play) as d_play sum(transcoding) as t_play sum(count) as total by newTitle | eval pctTranscoding=(t_play/(d_play+t_play)) | eval orderThis=round(pctTranscoding*total/60,1) | stats sum(orderThis) as "Hours transcoding" by newTitle | sort -"Hours transcoding"| rename newTitle as "Movie/Show" | head 10</query>
    <earliest>-7d@h</earliest>
    <latest>now</latest>
    </search>
    <option name="charting.chart">bar</option>
    <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
    <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
    <option name="charting.axisTitleX.visibility">visible</option>
    <option name="charting.axisTitleY.visibility">visible</option>
    <option name="charting.axisTitleY2.visibility">visible</option>
    <option name="charting.axisX.scale">linear</option>
    <option name="charting.axisY.scale">linear</option>
    <option name="charting.axisY2.enabled">0</option>
    <option name="charting.axisY2.scale">inherit</option>
    <option name="charting.chart.bubbleMaximumSize">50</option>
    <option name="charting.chart.bubbleMinimumSize">10</option>
    <option name="charting.chart.bubbleSizeBy">area</option>
    <option name="charting.chart.nullValueMode">gaps</option>
    <option name="charting.chart.showDataLabels">none</option>
    <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
    <option name="charting.chart.stackMode">default</option>
    <option name="charting.chart.style">shiny</option>
    <option name="charting.drilldown">all</option>
    <option name="charting.layout.splitSeries">0</option>
    <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
    <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
    <option name="charting.legend.placement">right</option>
    <option name="wrap">true</option>
    <option name="rowNumbers">false</option>
    <option name="dataOverlayMode">none</option>
    <option name="drilldown">cell</option>
    <option name="count">10</option>
    </table>
    </panel>
    </row>
    </dashboard>