{ "uid": "media-stack", "title": "Media Stack Analytics", "tags": ["media", "popelis"], "timezone": "browser", "schemaVersion": 39, "version": 1, "refresh": "5m", "time": { "from": "now-7d", "to": "now" }, "templating": { "list": [] }, "annotations": { "list": [] }, "panels": [ { "id": 1, "type": "stat", "title": "Jellyfin · items (último)", "gridPos": { "h": 4, "w": 4, "x": 0, "y": 0 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT count() AS items FROM analytics.jellyfin_items WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.jellyfin_items)" } ] }, { "id": 2, "type": "stat", "title": "Popelis · usuarios", "gridPos": { "h": 4, "w": 4, "x": 4, "y": 0 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT count() AS users FROM analytics.popelis_users WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.popelis_users)" } ] }, { "id": 3, "type": "stat", "title": "gnula · pendientes", "gridPos": { "h": 4, "w": 4, "x": 8, "y": 0 }, "fieldConfig": { "defaults": { "color": { "mode": "fixed", "fixedColor": "orange" } }, "overrides": [] }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT countIf(status='pending') AS pending FROM analytics.gnula_movies WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.gnula_movies)" } ] }, { "id": 4, "type": "stat", "title": "gnula · descargadas", "gridPos": { "h": 4, "w": 4, "x": 12, "y": 0 }, "fieldConfig": { "defaults": { "color": { "mode": "fixed", "fixedColor": "green" } }, "overrides": [] }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT countIf(status='downloaded') AS downloaded FROM analytics.gnula_movies WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.gnula_movies)" } ] }, { "id": 5, "type": "stat", "title": "*arr · grabs (total)", "gridPos": { "h": 4, "w": 4, "x": 16, "y": 0 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT countIf(event_type='grabbed') AS grabs FROM analytics.arr_history WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.arr_history)" } ] }, { "id": 6, "type": "stat", "title": "Jellyfin · sesiones activas (último)", "gridPos": { "h": 4, "w": 4, "x": 20, "y": 0 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT count() AS sesiones FROM analytics.jellyfin_sessions WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.jellyfin_sessions)" } ] }, { "id": 10, "type": "timeseries", "title": "gnula · catálogo en el tiempo", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 4 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "timeseries", "format": 0, "rawSql": "SELECT snapshot_ts AS time, countIf(status='pending') AS pendientes, countIf(status='downloaded') AS descargadas, countIf(in_library=1) AS en_biblioteca FROM analytics.gnula_movies GROUP BY time ORDER BY time" } ] }, { "id": 11, "type": "timeseries", "title": "Jellyfin · tamaño biblioteca en el tiempo", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 4 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "timeseries", "format": 0, "rawSql": "SELECT snapshot_ts AS time, countIf(type='Movie') AS peliculas, countIf(type='Series') AS series, countIf(type='Episode') AS episodios FROM analytics.jellyfin_items GROUP BY time ORDER BY time" } ] }, { "id": 20, "type": "table", "title": "*arr · grabs recientes", "gridPos": { "h": 9, "w": 12, "x": 0, "y": 12 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT event_date, app, title, indexer, quality, arrayStringConcat(languages, ',') AS idiomas FROM analytics.arr_history WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.arr_history) AND event_type='grabbed' ORDER BY event_date DESC LIMIT 30" } ] }, { "id": 21, "type": "table", "title": "Prowlarr · indexers", "gridPos": { "h": 9, "w": 12, "x": 12, "y": 12 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT name, enable, protocol, num_grabs, num_queries, num_grab_fail, num_query_fail FROM analytics.prowlarr_indexers WHERE snapshot_ts = (SELECT max(snapshot_ts) FROM analytics.prowlarr_indexers) ORDER BY num_grabs DESC" } ] }, { "id": 30, "type": "table", "title": "Popelis · eventos recientes", "gridPos": { "h": 9, "w": 12, "x": 0, "y": 21 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "table", "format": 1, "rawSql": "SELECT event_ts, username, event_type, item_id FROM analytics.popelis_events ORDER BY event_ts DESC LIMIT 50" } ] }, { "id": 31, "type": "timeseries", "title": "Popelis · eventos por tipo (por día)", "gridPos": { "h": 9, "w": 12, "x": 12, "y": 21 }, "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "targets": [ { "refId": "A", "datasource": { "type": "grafana-clickhouse-datasource", "uid": "clickhouse" }, "editorType": "sql", "queryType": "timeseries", "format": 0, "rawSql": "SELECT toStartOfDay(event_ts) AS time, countIf(event_type='login') AS logins, countIf(event_type='mylist_add') AS mylist_add, countIf(event_type='user_created') AS altas FROM analytics.popelis_events GROUP BY time ORDER BY time" } ] } ] }