Skip to content

Instantly share code, notes, and snippets.

@Asone
Created October 5, 2023 07:11
Show Gist options
  • Save Asone/c1f5f17002c44a39e33a2c3ac296442d to your computer and use it in GitHub Desktop.
Save Asone/c1f5f17002c44a39e33a2c3ac296442d to your computer and use it in GitHub Desktop.
Grafana dashboard configuration for nostr-rs-relay monitoring
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 1,
"links": [],
"liveNow": false,
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 19,
"panels": [],
"title": "Main Metrics",
"type": "row"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Number of events broadcasted in the selected time range",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 3,
"x": 0,
"y": 1
},
"id": 12,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "/^events$/",
"values": false
},
"textMode": "value"
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "WITH stats AS (\n SELECT count(*) as events from event WHERE created_at >= $__from / 1000 and created_at < $__to / 1000 AND kind = 1\n)\nSELECT events FROM stats;",
"queryType": "table",
"rawQueryText": "WITH stats AS (\n SELECT count(*) as events from event WHERE created_at >= $__from / 1000 and created_at < $__to / 1000 AND kind = 1\n)\nSELECT events FROM stats;",
"refId": "A",
"timeColumns": [
"time",
"ts"
]
}
],
"title": "Events",
"type": "stat"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Number of active users in the selected time range",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 3,
"x": 3,
"y": 1
},
"id": 13,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "/^authors$/",
"values": false
},
"textMode": "value"
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "WITH stats AS (\n SELECT count(distinct(author)) as authors from event WHERE created_at >= $__from / 1000 and created_at < $__to / 1000\n)\nSELECT authors FROM stats;",
"queryType": "table",
"rawQueryText": "WITH stats AS (\n SELECT count(distinct(author)) as authors from event WHERE created_at >= $__from / 1000 and created_at < $__to / 1000\n)\nSELECT authors FROM stats;",
"refId": "A",
"timeColumns": [
"time",
"ts"
]
}
],
"title": "Active users",
"type": "stat"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Shows the most active hashtags over time",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 1,
"scaleDistribution": {
"type": "linear"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 4,
"x": 6,
"y": 1
},
"id": 14,
"options": {
"barRadius": 0,
"barWidth": 0.97,
"fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"orientation": "horizontal",
"showValue": "auto",
"stacking": "none",
"text": {
"valueSize": 12
},
"tooltip": {
"mode": "multi",
"sort": "desc"
},
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "SELECT \n count(*) as occurences, \n t.value as hashtag \nFROM tag AS t LEFT JOIN event ON t.event_id = event.id \nWHERE t.name = \"t\" \nAND event.created_at >= $__from / 1000 and event.created_at < $__to / 1000\nGROUP BY t.value ORDER BY occurences DESC LIMIT 10;\n ",
"queryType": "table",
"rawQueryText": "SELECT \n count(*) as occurences, \n t.value as hashtag \nFROM tag AS t LEFT JOIN event ON t.event_id = event.id \nWHERE t.name = \"t\" \nAND event.created_at >= $__from / 1000 and event.created_at < $__to / 1000\nGROUP BY t.value ORDER BY occurences DESC LIMIT 10;\n ",
"refId": "A",
"timeColumns": [
"time",
"ts"
]
}
],
"title": "Most active hashtags",
"type": "barchart"
},
{
"gridPos": {
"h": 8,
"w": 5,
"x": 10,
"y": 1
},
"id": 9,
"libraryPanel": {
"name": "Most Active users",
"uid": "f5a81a90-1d83-4f9d-9d38-517715b61a19"
},
"title": "Most Active users"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Shows the most mentioned relays in the Relay list metadata event (NIP-65)",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 1,
"scaleDistribution": {
"type": "linear"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 5,
"x": 15,
"y": 1
},
"id": 15,
"options": {
"barRadius": 0,
"barWidth": 0.97,
"fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"orientation": "horizontal",
"showValue": "auto",
"stacking": "none",
"text": {
"valueSize": 12
},
"tooltip": {
"mode": "single",
"sort": "none"
},
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "SELECT count(*) as occurences, t.value FROM tag AS t LEFT JOIN event ON t.event_id = event.id \nWHERE t.name NOT IN (\"p\",\"e\",\"t\",\"a\") AND t.value LIKE \"wss%\"\nAND event.created_at >= $__from / 1000 and event.created_at < $__to / 1000\nGROUP BY t.value\nORDER BY occurences DESC LIMIT 10\n;\n ",
"queryType": "table",
"rawQueryText": "SELECT count(*) as occurences, t.value FROM tag AS t LEFT JOIN event ON t.event_id = event.id \nWHERE t.name NOT IN (\"p\",\"e\",\"t\",\"a\") AND t.value LIKE \"wss%\"\nAND event.created_at >= $__from / 1000 and event.created_at < $__to / 1000\nGROUP BY t.value\nORDER BY occurences DESC LIMIT 10\n;\n ",
"refId": "A",
"timeColumns": [
"time",
"ts"
]
}
],
"title": "Most recommended relays (NIP-65)",
"type": "barchart"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Show the latest URLs mentioned in tags with `r` (reference) type",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 4,
"x": 20,
"y": 1
},
"id": 16,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "SELECT t.value FROM tag AS t LEFT JOIN event ON t.event_id = event.id \nWHERE t.name NOT IN (\"p\",\"e\",\"t\",\"a\") AND t.value LIKE \"http%\"\nAND event.created_at >= $__from / 1000 and event.created_at < $__to / 1000\nGROUP BY t.value ORDER BY event.created_at LIMIT 10\n;\n ",
"queryType": "table",
"rawQueryText": "SELECT t.value FROM tag AS t LEFT JOIN event ON t.event_id = event.id \nWHERE t.name NOT IN (\"p\",\"e\",\"t\",\"a\") AND t.value LIKE \"http%\"\nAND event.created_at >= $__from / 1000 and event.created_at < $__to / 1000\nGROUP BY t.value ORDER BY event.created_at LIMIT 10\n;\n ",
"refId": "A",
"timeColumns": [
"time",
"ts"
]
}
],
"title": "Latest referenced URLs",
"type": "table"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 9
},
"id": 11,
"panels": [],
"title": "Live ",
"type": "row"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Content of the latest broadcasted events",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 24,
"x": 0,
"y": 10
},
"id": 7,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "WITH metadata AS (\n SELECT\n json_extract(event.content,'$.pubkey') AS pubkey,\n lower(hex(author)) AS author,\n json_extract(json_extract(event.content,'$.content'),'$.name') AS name\n FROM event WHERE kind = 0\n),\nnotes AS (\n SELECT \n strftime('%H:%M', datetime(created_at, 'unixepoch')) AS datetime,\n strftime('%d/%m/%Y', datetime(created_at, 'unixepoch')) AS date,\n lower(hex(author)) AS author,\n created_at AS created_at,\n json_extract(event.content,'$.content') AS content\n FROM event WHERE kind = 1\n)\nSELECT \n CASE \n WHEN m.name != '' OR m.name IS NOT null THEN m.name\n ELSE m.author\n END name,\n n.content, \n n.datetime, \n n.date \nFROM notes AS n LEFT JOIN metadata AS m ON n.author = m.author WHERE created_at >= $__from / 1000 and created_at < $__to / 1000 ORDER BY n.created_at DESC;\n",
"queryType": "table",
"rawQueryText": "WITH metadata AS (\n SELECT\n json_extract(event.content,'$.pubkey') AS pubkey,\n lower(hex(author)) AS author,\n json_extract(json_extract(event.content,'$.content'),'$.name') AS name\n FROM event WHERE kind = 0\n),\nnotes AS (\n SELECT \n strftime('%H:%M', datetime(created_at, 'unixepoch')) AS datetime,\n strftime('%d/%m/%Y', datetime(created_at, 'unixepoch')) AS date,\n lower(hex(author)) AS author,\n created_at AS created_at,\n json_extract(event.content,'$.content') AS content\n FROM event WHERE kind = 1\n)\nSELECT \n CASE \n WHEN m.name != '' OR m.name IS NOT null THEN m.name\n ELSE m.author\n END name,\n n.content, \n n.datetime, \n n.date \nFROM notes AS n LEFT JOIN metadata AS m ON n.author = m.author WHERE created_at >= $__from / 1000 and created_at < $__to / 1000 ORDER BY n.created_at DESC;\n",
"refId": "A",
"timeColumns": [
"time",
"ts"
]
}
],
"title": "Latest broadcasted notes",
"type": "table"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Shows the number of active users over time",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 17
},
"id": 18,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "SELECT\n $__unixEpochGroupSeconds(\"created_at\", 600, NULL) as date,\n count(distinct(author)) as users\nFROM\n event\nWHERE created_at >= $__from / 1000 and created_at < $__to / 1000\nGROUP BY\n date\nORDER BY\n created_at;",
"queryType": "table",
"rawQueryText": "SELECT\n $__unixEpochGroupSeconds(\"created_at\", 600, NULL) as date,\n count(distinct(author)) as users\nFROM\n event\nWHERE created_at >= $__from / 1000 and created_at < $__to / 1000\nGROUP BY\n date\nORDER BY\n created_at;",
"refId": "A",
"timeColumns": [
"time",
"ts",
"date"
]
}
],
"title": "Active users",
"type": "timeseries"
},
{
"gridPos": {
"h": 11,
"w": 24,
"x": 0,
"y": 25
},
"id": 17,
"libraryPanel": {
"name": "Active users",
"uid": "e770da48-de10-4a50-b048-23e995837f81"
},
"title": "Broadcasted Events"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Displays the number of users that declared NIP-05 over time",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 36
},
"id": 3,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "SELECT\n $__unixEpochGroupSeconds(\"verified_at\", 60, NULL) as date,\n count(*) as users\nFROM\n user_verification\nWHERE verified_at >= $__from / 1000 and verified_at < $__to / 1000\nGROUP BY\n date\nORDER BY\n date;",
"queryType": "table",
"rawQueryText": "SELECT\n $__unixEpochGroupSeconds(\"verified_at\", 60, NULL) as date,\n count(*) as users\nFROM\n user_verification\nWHERE verified_at >= $__from / 1000 and verified_at < $__to / 1000\nGROUP BY\n date\nORDER BY\n date;",
"refId": "A",
"timeColumns": [
"time",
"ts",
"verified_at",
"date"
]
}
],
"title": "NIP-05",
"type": "timeseries"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "Displays the broadcasted invoices over time",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 36
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "SELECT\n $__unixEpochGroupSeconds(\"created_at\", 300, NULL) as date,\n count(*) as invoices\nFROM\n invoice\nWHERE created_at >= $__from / 1000 and created_at < $__to / 1000\nGROUP BY\n date\nORDER BY\n date;",
"queryType": "table",
"rawQueryText": "SELECT\n $__unixEpochGroupSeconds(\"created_at\", 300, NULL) as date,\n count(*) as invoices\nFROM\n invoice\nWHERE created_at >= $__from / 1000 and created_at < $__to / 1000\nGROUP BY\n date\nORDER BY\n date;",
"refId": "A",
"timeColumns": [
"time",
"ts",
"date"
]
}
],
"title": "Invoices",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 45
},
"id": 20,
"panels": [],
"title": "Other metrics",
"type": "row"
},
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "always",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"displayName": "Metadata events",
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 46
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "10.1.4",
"targets": [
{
"datasource": {
"type": "frser-sqlite-datasource",
"uid": "f28ade8d-96b2-4c21-b3dd-13be41854d4f"
},
"queryText": "SELECT\n $__unixEpochGroupSeconds(\"created_at\", 600, NULL) as date,\n count(*) as events\nFROM\n event\nWHERE created_at >= $__from / 1000 and created_at < $__to / 1000\nAND kind = 0\nGROUP BY\n date\nORDER BY\n date;",
"queryType": "table",
"rawQueryText": "SELECT\n $__unixEpochGroupSeconds(\"created_at\", 600, NULL) as date,\n count(*) as events\nFROM\n event\nWHERE created_at >= $__from / 1000 and created_at < $__to / 1000\nAND kind = 0\nGROUP BY\n date\nORDER BY\n date;",
"refId": "A",
"timeColumns": [
"time",
"ts",
"created_at",
"date"
]
}
],
"title": "Metadata events",
"type": "timeseries"
}
],
"refresh": "",
"schemaVersion": 38,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-7d",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Nostr relay",
"uid": "cd10a687-6163-47c0-ac95-820c96de8f9d",
"version": 24,
"weekStart": ""
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment