

ClickHouse) as a datasource in Grafana.
Steps
- Navigate to your Grafana Instance.
- Login with your credentials.
- Click on the Connection on the left sidebar to open the Add new connection.
- In the search box, type
ClickHouseand then clickInstallbutton on the top right corner. - Click the Add new data source button on the top right corner.
1.In the settings form, fill in the details to connect to your ClickHouse database:
- Server address: Provide the host address of your ClickHouse Database (e.g.,
127.0.0.1). - Server port: Provide the port of your ClickHouse Database (e.g.,
9000) and set protocol asNative - Username: The username for the ClickHouse database. Default user used by Doku is
default. - Password: The password for the database. Default password used by Doku is
DOKU. - Under Additional settings
- Add Default database. Default database used by Doku is
default.
- Add Default database. Default database used by Doku is
- Server address: Provide the host address of your ClickHouse Database (e.g.,
- Optionally customize the Additional settings.
- Click the Save & Test button at the bottom of the page.
Grafana Resources
Dashboard
Dashboard
{
"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": [
{
"icon": "info",
"tags": [],
"targetBlank": true,
"title": "Doku Documentation",
"tooltip": "",
"type": "link",
"url": "https://grafana.com/docs/grafana/latest/"
},
{
"icon": "info",
"tags": [],
"targetBlank": true,
"title": "Doku Community",
"tooltip": "",
"type": "link",
"url": "https://dokulabs.slack.com/"
},
{
"icon": "info",
"tags": [],
"targetBlank": true,
"title": "Dokulabs GitHub",
"tooltip": "",
"type": "link",
"url": "https://github.com/dokulabs/"
}
],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"gridPos": {
"h": 4,
"w": 11,
"x": 0,
"y": 0
},
"id": 23,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "---\n---\n---\n---\n---\n---",
"mode": "markdown"
},
"pluginVersion": "10.3.3",
"transparent": true,
"type": "text"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"gridPos": {
"h": 4,
"w": 2,
"x": 11,
"y": 0
},
"id": 2,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "",
"mode": "markdown"
},
"pluginVersion": "10.3.3",
"transparent": true,
"type": "text"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"gridPos": {
"h": 4,
"w": 11,
"x": 13,
"y": 0
},
"id": 22,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "---\n---\n---\n---\n---\n---",
"mode": "markdown"
},
"pluginVersion": "10.3.3",
"transparent": true,
"type": "text"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the total number of requests sent to Large Language Models (LLM) Platforms in the selected time interval.",
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "yellow",
"mode": "continuous-BlPu"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 6,
"x": 0,
"y": 4
},
"id": 3,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT count(*) FROM DOKU_LLM_DATA\nWHERE $__timeFilter(time)",
"refId": "A",
"sql": {
"columns": [
{
"name": "COUNT",
"parameters": [
{
"name": "environment",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Total Requests",
"transparent": true,
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the average time taken to process each request by the Large Language Models (LLM), offering a snapshot of system performance and efficiency.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 5
}
]
},
"unit": "s",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 4,
"x": 6,
"y": 4
},
"id": 4,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT AVG(requestDuration) FROM DOKU_LLM_DATA\nWHERE $__timeFilter(time)",
"refId": "A",
"sql": {
"columns": [
{
"name": "AVG",
"parameters": [
{
"name": "requestduration",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Avg Request Duration",
"transparent": true,
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the average count of Total tokens used per LLM request",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 1000
}
]
},
"unit": "none",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 4,
"x": 10,
"y": 4
},
"id": 5,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT AVG(totalTokens) FROM DOKU_LLM_DATA\nWHERE $__timeFilter(time)",
"refId": "A",
"sql": {
"columns": [
{
"name": "AVG",
"parameters": [
{
"name": "totaltokens",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Avg Tokens per Request",
"transparent": true,
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the average cost incurred per request to the LLM, helping monitor and optimize budget allocation for LLM usage.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 5
}
]
},
"unit": "currencyUSD",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 4,
"x": 14,
"y": 4
},
"id": 6,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT AVG(usageCost) FROM DOKU_LLM_DATA \nWHERE $__timeFilter(time)",
"refId": "A",
"sql": {
"columns": [
{
"name": "AVG",
"parameters": [
{
"name": "usagecost",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Avg Cost / Request",
"transparent": true,
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the total cost on LLM requests over the selected period.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-BlPu"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "currencyUSD",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 6,
"x": 18,
"y": 4
},
"id": 10,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT SUM(usageCost) FROM DOKU_LLM_DATA\nWHERE $__timeFilter(time)",
"refId": "A",
"sql": {
"columns": [
{
"name": "SUM",
"parameters": [
{
"name": "usagecost",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Total Cost",
"transparent": true,
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the count of API requests made to LLMs over the selected time.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic-by-name"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "series",
"axisGridShow": true,
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 100,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineStyle": {
"dash": [
10,
10
],
"fill": "dash"
},
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "always",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"fieldMinMax": false,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "none",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 24,
"x": 0,
"y": 7
},
"id": 17,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": false
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"format": "time_series",
"rawQuery": true,
"rawSql": "SELECT\n DATE_TRUNC('day', \"time\") AS \"time\",\n COUNT(endpoint) AS total_requests\nFROM \n DOKU_LLM_DATA\nWHERE\n $__timeFilter(\"time\")\nGROUP BY \n DATE_TRUNC('day', \"time\")\nORDER BY \n \"time\";",
"refId": "A",
"sql": {
"columns": [
{
"alias": "\"Prompt Tokens\"",
"parameters": [
{
"name": "prompttokens",
"type": "functionParameter"
}
],
"type": "function"
},
{
"alias": "\"time\"",
"parameters": [
{
"name": "\"time\"",
"type": "functionParameter"
}
],
"type": "function"
},
{
"alias": "\"Completion Tokens\"",
"parameters": [
{
"name": "completiontokens",
"type": "functionParameter"
}
],
"type": "function"
},
{
"alias": "\"Total Tokens\"",
"parameters": [
{
"name": "totaltokens",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Total Requests / Day",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel illustrates the distribution of LLM requests across different usage categories: Chat Generations, Embeddings, Image Generations, Audio Generations, and Fine Tuning. It visualizes the relative volume of requests, helping to identify which types of operations are most frequently performed and providing insights into usage patterns by category.\n\n",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 6,
"x": 0,
"y": 12
},
"id": 12,
"options": {
"displayLabels": [
"name",
"percent"
],
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": false,
"values": []
},
"pieType": "pie",
"reduceOptions": {
"calcs": [],
"fields": "/^requests$/",
"values": true
},
"tooltip": {
"mode": "single",
"sort": "asc"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT \n category,\n CAST(COUNT(*) AS INTEGER) AS Requests,\n ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER(), 2) AS percentage\n FROM \n (\n SELECT \n CASE\n WHEN endpoint LIKE 'openai.chat%' THEN 'Chat'\n WHEN endpoint LIKE 'openai.completions%' THEN 'Chat'\n WHEN endpoint LIKE 'anthropic.messages%' THEN 'Chat'\n WHEN endpoint LIKE 'cohere.summarize%' THEN 'Chat'\n WHEN endpoint LIKE 'cohere.generate%' THEN 'Chat'\n WHEN endpoint LIKE 'cohere.chat%' THEN 'Chat'\n WHEN endpoint LIKE '%embed%' THEN 'Embeddings'\n WHEN endpoint LIKE 'openai.images%' THEN 'Image'\n WHEN endpoint LIKE 'openai.audio%' THEN 'Audio'\n WHEN endpoint LIKE 'openai.fine_tuning%' THEN 'Fine Tuning'\n END AS category,\n endpoint\n FROM DOKU_LLM_DATA\n WHERE $__timeFilter(time)\n ) AS subquery\n GROUP BY category",
"refId": "A",
"sql": {
"columns": [
{
"parameters": [],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
}
}
],
"title": "Usage by Category",
"transparent": true,
"type": "piechart"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "Displays the cost breakdown by provider (OpenAI, Cohere, Anthropic) for LLM requests, offering insights into financial deployment across different services.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unit": "currencyUSD",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 6,
"x": 6,
"y": 12
},
"id": 16,
"options": {
"displayLabels": [
"name",
"value"
],
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": false,
"values": []
},
"pieType": "pie",
"reduceOptions": {
"calcs": [],
"fields": "/.*/",
"values": true
},
"tooltip": {
"mode": "single",
"sort": "asc"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT\n CASE\n WHEN endpoint LIKE 'openai.%' THEN 'OpenAI'\n WHEN endpoint LIKE 'cohere.%' THEN 'Cohere'\n WHEN endpoint LIKE 'anthropic.%' THEN 'Anthropic'\n END AS provider,\n SUM(usageCost) AS total_cost\nFROM\n DOKU_LLM_DATA\nWHERE $__timeFilter(time)\nGROUP BY\n provider\nORDER BY\n total_cost DESC;",
"refId": "A",
"sql": {
"columns": [
{
"parameters": [],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
}
}
],
"title": "Usage cost by Provider",
"transparent": true,
"type": "piechart"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel presents a pie chart detailing the distribution of expenses for LLM requests by various applications. It shows how budget allocations are consumed by different applications, enabling a deeper understanding of cost drivers and facilitating cost optimization efforts.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unit": "currencyUSD",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 6,
"x": 12,
"y": 12
},
"id": 18,
"options": {
"displayLabels": [
"name",
"value"
],
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": false
},
"pieType": "pie",
"reduceOptions": {
"calcs": [
"uniqueValues"
],
"fields": "",
"values": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": " SELECT\n applicationName,\n sum(usageCost) AS \"usageCost\"\n FROM\n DOKU_LLM_DATA\n WHERE $__timeFilter(time)\n GROUP BY\n applicationName\n ORDER BY\n \"usageCost\" DESC",
"refId": "A",
"sql": {
"columns": [
{
"parameters": [],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
}
}
],
"title": "Usage cost by Application",
"transparent": true,
"type": "piechart"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "Visualizes the allocation of LLM request expenses across different environments, such as development, staging, and production. This breakdown helps in tracking and managing costs with respect to operational environments.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unit": "currencyUSD",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 6,
"x": 18,
"y": 12
},
"id": 19,
"options": {
"displayLabels": [
"name",
"value"
],
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": false
},
"pieType": "pie",
"reduceOptions": {
"calcs": [
"uniqueValues"
],
"fields": "",
"values": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": " SELECT\n environment,\n sum(usageCost) AS \"usageCost\"\n FROM\n DOKU_LLM_DATA\n WHERE $__timeFilter(time)\n GROUP BY\n environment\n ORDER BY\n \"usageCost\" DESC",
"refId": "A",
"sql": {
"columns": [
{
"parameters": [],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
}
}
],
"title": "Usage cost by Environment",
"transparent": true,
"type": "piechart"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the average count of Prompt tokens used per LLM request",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-YlBl"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 5
}
]
},
"unit": "none",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 6,
"x": 0,
"y": 21
},
"id": 9,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT AVG(promptTokens) FROM DOKU_LLM_DATA WHERE \n $__timeFilter(\"time\")",
"refId": "A",
"sql": {
"columns": [
{
"name": "AVG",
"parameters": [
{
"name": "prompttokens",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Avg Prompt Tokens / Request",
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "Provides a time-series analysis of token consumption for LLM requests, highlighting trends in usage intensity and complexity over time.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "series",
"axisGridShow": true,
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "hue",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 86400000,
"lineInterpolation": "linear",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"fieldMinMax": false,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 18,
"x": 6,
"y": 21
},
"id": 11,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT promptTokens AS \"Prompt Tokens\", \"time\" AS \"time\", completionTokens AS \"Completion Tokens\", totalTokens AS \"Total Tokens\" FROM DOKU_LLM_DATA",
"refId": "A",
"sql": {
"columns": [
{
"alias": "\"Prompt Tokens\"",
"parameters": [
{
"name": "prompttokens",
"type": "functionParameter"
}
],
"type": "function"
},
{
"alias": "\"time\"",
"parameters": [
{
"name": "\"time\"",
"type": "functionParameter"
}
],
"type": "function"
},
{
"alias": "\"Completion Tokens\"",
"parameters": [
{
"name": "completiontokens",
"type": "functionParameter"
}
],
"type": "function"
},
{
"alias": "\"Total Tokens\"",
"parameters": [
{
"name": "totaltokens",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Token usage",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "This panel shows the average count of Completion tokens used per LLM request",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-YlBl"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 5
}
]
},
"unit": "none",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 6,
"x": 0,
"y": 24
},
"id": 7,
"options": {
"colorMode": "background",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT AVG(completionTokens) FROM DOKU_LLM_DATA WHERE \n $__timeFilter(\"time\")",
"refId": "A",
"sql": {
"columns": [
{
"name": "AVG",
"parameters": [
{
"name": "completiontokens",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Avg Completion Tokens / Request",
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "Displays the frequency of model usage over time, identifying the most utilised models and showcasing usage trends across different periods",
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "purple",
"mode": "continuous-YlBl"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "none",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 12,
"x": 0,
"y": 27
},
"id": 13,
"options": {
"displayMode": "lcd",
"maxVizHeight": 167,
"minVizHeight": 10,
"minVizWidth": 75,
"namePlacement": "top",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"sum"
],
"fields": "/^total_count$/",
"values": true
},
"showUnfilled": true,
"sizing": "manual",
"valueMode": "text"
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT \n model,\n total_count,\n percentage_usage\nFROM \n (\n SELECT \n model,\n COUNT(*) AS total_count,\n ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER(), 2) AS percentage_usage\n FROM \n DOKU_LLM_DATA\n WHERE $__timeFilter(time)\n GROUP BY \n model\n ORDER BY \n percentage_usage DESC\n ) sub\nLIMIT 5;",
"refId": "A",
"sql": {
"columns": [
{
"parameters": [
{
"name": "model",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Top models by usage",
"type": "bargauge"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "Breaks down token usage across different LLM models, offering insights into which models are driving the highest token consumption.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"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
}
]
},
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 12,
"x": 12,
"y": 27
},
"id": 14,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT \n DATE_TRUNC('day', \"time\") AS \"time\",\n model,\n COUNT(*) AS \"Model:\"\nFROM \n DOKU_LLM_DATA\nWHERE \n $__timeFilter(\"time\")\nGROUP BY \n 1, model\nORDER BY \n \"time\" ASC, model;",
"refId": "A",
"sql": {
"columns": [
{
"parameters": [
{
"name": "model",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "Model usage by day",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"description": "Table showing prompts and responses along with their associated costs and token usage.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic-by-name"
},
"custom": {
"align": "center",
"cellOptions": {
"mode": "gradient",
"type": "color-background"
},
"filterable": true,
"inspect": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "currencyUSD",
"unitScale": true
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 33
},
"id": 15,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.3.3",
"targets": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "${datasource}"
},
"editorMode": "code",
"editorType": "sql",
"format": 1,
"meta": {},
"pluginVersion": "4.0.3",
"queryType": "table",
"rawQuery": true,
"rawSql": "SELECT \"time\", applicationName, model, prompt, response, usageCost FROM DOKU_LLM_DATA WHERE $__timeFilter(time)",
"refId": "A",
"sql": {
"columns": [
{
"parameters": [
{
"name": "endpoint",
"type": "functionParameter"
}
],
"type": "function"
},
{
"parameters": [
{
"name": "prompt",
"type": "functionParameter"
}
],
"type": "function"
},
{
"parameters": [
{
"name": "response",
"type": "functionParameter"
}
],
"type": "function"
},
{
"parameters": [
{
"name": "totaltokens",
"type": "functionParameter"
}
],
"type": "function"
}
],
"groupBy": [
{
"property": {
"type": "string"
},
"type": "groupBy"
}
],
"limit": 50
},
"table": "doku"
}
],
"title": "User Activity",
"transparent": true,
"type": "table"
}
],
"refresh": "",
"schemaVersion": 39,
"tags": [
"Doku",
"OpenAI",
"Cohere",
"Anthropic"
],
"templating": {
"list": [
{
"current": {
"selected": false,
"text": "grafana-clickhouse-datasource",
"value": "ef07bf93-52b4-4c5d-adda-8a498d388510"
},
"hide": 0,
"includeAll": false,
"label": "Datasource",
"multi": false,
"name": "datasource",
"options": [],
"query": "grafana-clickhouse-datasource",
"queryValue": "",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
}
]
},
"time": {
"from": "now-7d",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Doku - LLM Monitoring",
"uid": "doku-llm-monitoring",
"version": 3,
"weekStart": ""
}
Integrations
Integrate your LLM Provider with Doku
API Reference
OpenAPI specification for API Endpoints in Doku

