diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 65532bd5968..be1b8af7fa2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -377,6 +377,7 @@ /packages/okta @elastic/security-service-integrations /packages/openai @elastic/obs-infraobs-integrations /packages/opencanary @elastic/security-service-integrations +/packages/openclaw @elastic/ecosystem /packages/oracle @elastic/obs-infraobs-integrations /packages/oracle_weblogic @elastic/obs-infraobs-integrations /packages/osquery @elastic/sec-windows-platform diff --git a/.gitignore b/.gitignore index b4f8e46d069..7019807734f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ elastic-package # Folder created by the Sonar Scanner .scannerwork/ +deploy_openclaw.sh diff --git a/packages/openclaw/_dev/build/docs/README.md b/packages/openclaw/_dev/build/docs/README.md new file mode 100644 index 00000000000..e903afe31db --- /dev/null +++ b/packages/openclaw/_dev/build/docs/README.md @@ -0,0 +1,23 @@ +# OpenClaw Integration + +The OpenClaw integration allows you to ingest and monitor LLM observability metrics, session logs, and assistant usage data from the OpenClaw AI agent framework. + +It provides a comprehensive view of: +- **Token Consumption**: Input and output tokens used per request. +- **Cost Analysis**: Financial cost incurred per model and session. +- **Tool Usage**: Which tools (skills) were executed and their frequencies. +- **Latency**: End-to-end response time of the AI agent. + +## Data Streams + +This integration includes the following data streams: + +### Sessions Data Stream (`sessions`) + +The `sessions` data stream collects detailed, turn-by-turn interactions from OpenClaw, capturing user prompts, agent thoughts, final responses, and internal metadata (like model versions and token counts). + +**Exported Fields** + +For a detailed list of exported fields, refer to the [ECS Field Reference](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) and the specific fields listed below: + +{{fields "sessions"}} diff --git a/packages/openclaw/_dev/deploy/docker/docker-compose.yml b/packages/openclaw/_dev/deploy/docker/docker-compose.yml new file mode 100644 index 00000000000..5369daf02a4 --- /dev/null +++ b/packages/openclaw/_dev/deploy/docker/docker-compose.yml @@ -0,0 +1,5 @@ +version: "3.8" +services: + dummy: + image: busybox + command: ["sleep", "infinity"] diff --git a/packages/openclaw/changelog.yml b/packages/openclaw/changelog.yml new file mode 100644 index 00000000000..654290c535f --- /dev/null +++ b/packages/openclaw/changelog.yml @@ -0,0 +1,20 @@ +- version: "1.0.3" + changes: + - description: "Change text and thinking field mapping to match_only_text" + type: "bugfix" + link: "https://github.com/elastic/integrations/pull/17936" +- version: "1.0.2" + changes: + - description: "Fix missing macro expansion in README by moving it to _dev/build/docs/" + type: "bugfix" + link: "https://github.com/elastic/integrations/pull/3" +- version: "1.0.1" + changes: + - description: "Update dashboard fields and refresh deployment" + type: "bugfix" + link: "https://github.com/elastic/integrations/pull/2" +- version: "1.0.0" + changes: + - description: "Initial release" + type: "enhancement" + link: "https://github.com/elastic/integrations/pull/1" diff --git a/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log b/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log new file mode 100644 index 00000000000..637638d2520 --- /dev/null +++ b/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log @@ -0,0 +1 @@ +{"timestamp":"2026-03-19T02:57:28.310Z","message":{"role":"assistant","model":"gemini-3.1-pro-preview","usage":{"input":13362,"output":437,"totalTokens":13799,"cost":{"total":0.031968}},"content":[{"type":"text","text":"Simulated text"},{"type":"thinking","thinking":"Thinking..."},{"type":"toolCall","name":"weather","arguments":{"city":"London"}}]}} diff --git a/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log-config.yml b/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log-config.yml new file mode 100644 index 00000000000..63269992549 --- /dev/null +++ b/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log-config.yml @@ -0,0 +1,4 @@ +dynamic_fields: + "openclaw.agent.id": ".*" + "openclaw.session.id": ".*" + "event.ingested": ".*" diff --git a/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log-expected.json b/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log-expected.json new file mode 100644 index 00000000000..359e1f4f947 --- /dev/null +++ b/packages/openclaw/data_stream/sessions/_dev/test/pipeline/test-sessions.log-expected.json @@ -0,0 +1,32 @@ +{ + "expected": [ + { + "@timestamp": "2026-03-19T02:57:28.310Z", + "event": { + "ingested": "2026-03-21T04:33:21.503436214Z" + }, + "openclaw": { + "cost": { + "usd": 0.031968 + }, + "model": "gemini-3.1-pro-preview", + "role": "assistant", + "text": "Simulated text", + "thinking": "Thinking...", + "tool_calls": [ + { + "arguments": { + "city": "London" + }, + "name": "weather" + } + ], + "usage": { + "input_tokens": 13362, + "output_tokens": 437, + "total_tokens": 13799 + } + } + } + ] +} diff --git a/packages/openclaw/data_stream/sessions/agent/stream/stream.yml.hbs b/packages/openclaw/data_stream/sessions/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..ebf50bf21f6 --- /dev/null +++ b/packages/openclaw/data_stream/sessions/agent/stream/stream.yml.hbs @@ -0,0 +1,16 @@ +paths: +{{#each paths}} + - {{this}} +{{/each}} +exclude_files: [".gz$"] +tags: +{{#if tags}} +{{#each tags}} + - {{this}} +{{/each}} +{{/if}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +processors: + - add_locale: ~ diff --git a/packages/openclaw/data_stream/sessions/elasticsearch/ingest_pipeline/default.yml b/packages/openclaw/data_stream/sessions/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..503164c98ee --- /dev/null +++ b/packages/openclaw/data_stream/sessions/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,86 @@ +--- +description: Pipeline for parsing OpenClaw session JSONL logs +processors: + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' + - json: + field: message + target_field: openclaw + ignore_failure: true + - grok: + field: log.file.path + patterns: + - '%{GREEDYDATA}/agents/(?[^/]+)/sessions/(?[^/]+)\.jsonl$' + ignore_missing: true + ignore_failure: true + - date: + if: ctx?.openclaw?.timestamp != null + field: openclaw.timestamp + target_field: "@timestamp" + formats: + - ISO8601 + - rename: + field: openclaw.message.role + target_field: openclaw.role + ignore_missing: true + - rename: + field: openclaw.message.model + target_field: openclaw.model + ignore_missing: true + - rename: + field: openclaw.message.usage.input + target_field: openclaw.usage.input_tokens + ignore_missing: true + - rename: + field: openclaw.message.usage.output + target_field: openclaw.usage.output_tokens + ignore_missing: true + - rename: + field: openclaw.message.usage.totalTokens + target_field: openclaw.usage.total_tokens + ignore_missing: true + - rename: + field: openclaw.message.usage.cost.total + target_field: openclaw.cost.usd + ignore_missing: true + - script: + description: "Extract text, thinking, and tool_calls from content array" + lang: painless + if: "ctx.openclaw?.message?.content != null" + source: | + def content = ctx.openclaw.message.content; + if (content instanceof List) { + def tool_calls = []; + for (def item : content) { + if (item.type == 'text' && item.text != null) { + ctx.openclaw.text = item.text; + } else if (item.type == 'thinking' && item.thinking != null) { + ctx.openclaw.thinking = item.thinking; + } else if (item.type == 'toolCall') { + def tc = new HashMap(); + if (item.name != null) { + tc.put('name', item.name); + } + if (item.arguments != null) { + tc.put('arguments', item.arguments); + } + tool_calls.add(tc); + } + } + if (tool_calls.size() > 0) { + ctx.openclaw.tool_calls = tool_calls; + } + } else if (content instanceof String) { + ctx.openclaw.text = content; + } + - remove: + field: + - message + - openclaw.message + - openclaw.timestamp + ignore_missing: true +on_failure: + - set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/openclaw/data_stream/sessions/fields/base.yml b/packages/openclaw/data_stream/sessions/fields/base.yml new file mode 100644 index 00000000000..00b27abf205 --- /dev/null +++ b/packages/openclaw/data_stream/sessions/fields/base.yml @@ -0,0 +1,12 @@ +- name: "@timestamp" + type: date + description: Event timestamp. +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. diff --git a/packages/openclaw/data_stream/sessions/fields/fields.yml b/packages/openclaw/data_stream/sessions/fields/fields.yml new file mode 100644 index 00000000000..c75831ed1b9 --- /dev/null +++ b/packages/openclaw/data_stream/sessions/fields/fields.yml @@ -0,0 +1,43 @@ +- name: openclaw + type: group + fields: + - name: cost.usd + type: float + description: Cost in USD + - name: model + type: keyword + description: Model name + - name: role + type: keyword + description: Role of the message sender (user or assistant) + - name: text + type: match_only_text + description: Text content of the interaction + - name: thinking + type: match_only_text + description: Internal thinking process + - name: tool_calls + type: group + description: Tool calls invoked during the session + fields: + - name: name + type: keyword + description: Name of the tool called + - name: arguments + type: flattened + description: Arguments passed to the tool + - name: usage.input_tokens + type: long + description: Number of input tokens + - name: usage.output_tokens + type: long + description: Number of output tokens + - name: usage.total_tokens + type: long + description: Total token usage + - name: agent.id + type: keyword + description: Agent ID + - name: session.id + type: keyword + description: Session ID diff --git a/packages/openclaw/data_stream/sessions/manifest.yml b/packages/openclaw/data_stream/sessions/manifest.yml new file mode 100644 index 00000000000..333e35c5b0f --- /dev/null +++ b/packages/openclaw/data_stream/sessions/manifest.yml @@ -0,0 +1,16 @@ +type: logs +title: OpenClaw Sessions +release: beta +streams: + - input: logfile + title: OpenClaw Session Logs + description: Collects OpenClaw JSONL session files + vars: + - name: paths + type: text + title: Paths + multi: true + required: true + show_user: true + default: + - ~/.openclaw/agents/*/sessions/*.jsonl* diff --git a/packages/openclaw/docs/README.md b/packages/openclaw/docs/README.md new file mode 100644 index 00000000000..e3e7efbf5b8 --- /dev/null +++ b/packages/openclaw/docs/README.md @@ -0,0 +1,43 @@ +# OpenClaw Integration + +The OpenClaw integration allows you to ingest and monitor LLM observability metrics, session logs, and assistant usage data from the OpenClaw AI agent framework. + +It provides a comprehensive view of: +- **Token Consumption**: Input and output tokens used per request. +- **Cost Analysis**: Financial cost incurred per model and session. +- **Tool Usage**: Which tools (skills) were executed and their frequencies. +- **Latency**: End-to-end response time of the AI agent. + +## Data Streams + +This integration includes the following data streams: + +### Sessions Data Stream (`sessions`) + +The `sessions` data stream collects detailed, turn-by-turn interactions from OpenClaw, capturing user prompts, agent thoughts, final responses, and internal metadata (like model versions and token counts). + +**Exported Fields** + +For a detailed list of exported fields, refer to the [ECS Field Reference](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) and the specific fields listed below: + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| openclaw.agent.id | Agent ID | keyword | +| openclaw.cost.usd | Cost in USD | float | +| openclaw.model | Model name | keyword | +| openclaw.role | Role of the message sender (user or assistant) | keyword | +| openclaw.session.id | Session ID | keyword | +| openclaw.text | Text content of the interaction | match_only_text | +| openclaw.thinking | Internal thinking process | match_only_text | +| openclaw.tool_calls.arguments | Arguments passed to the tool | flattened | +| openclaw.tool_calls.name | Name of the tool called | keyword | +| openclaw.usage.input_tokens | Number of input tokens | long | +| openclaw.usage.output_tokens | Number of output tokens | long | +| openclaw.usage.total_tokens | Total token usage | long | + diff --git a/packages/openclaw/img/openclaw.png b/packages/openclaw/img/openclaw.png new file mode 100644 index 00000000000..525515be781 Binary files /dev/null and b/packages/openclaw/img/openclaw.png differ diff --git a/packages/openclaw/img/openclaw.svg b/packages/openclaw/img/openclaw.svg new file mode 100644 index 00000000000..de9dc265246 --- /dev/null +++ b/packages/openclaw/img/openclaw.svg @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/openclaw/img/openclaw_usage_dashboard.png b/packages/openclaw/img/openclaw_usage_dashboard.png new file mode 100644 index 00000000000..fc339e04458 Binary files /dev/null and b/packages/openclaw/img/openclaw_usage_dashboard.png differ diff --git a/packages/openclaw/kibana/dashboard/openclaw-overview.json b/packages/openclaw/kibana/dashboard/openclaw-overview.json new file mode 100644 index 00000000000..b9a72d77b4b --- /dev/null +++ b/packages/openclaw/kibana/dashboard/openclaw-overview.json @@ -0,0 +1,191 @@ +{ + "accessControl": { + "accessMode": "default", + "owner": "u_JlTJULthyrXyE6KY-XsOKK1jB-kKS3MUjcW-HkdeYvw_0" + }, + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"5ba3b026-028d-4278-ac75-69cbeff2ab0c\":{\"grow\":false,\"order\":0,\"type\":\"optionsListControl\",\"width\":\"medium\",\"explicitInput\":{\"dataViewId\":\"openclaw\",\"fieldName\":\"openclaw.agent.id\",\"exclude\":false,\"existsSelected\":false,\"selectedOptions\":[],\"searchTechnique\":\"prefix\",\"sort\":{\"by\":\"_count\",\"direction\":\"desc\"}}},\"ba403069-3053-4fae-893b-ced69abc0ed4\":{\"grow\":false,\"order\":1,\"type\":\"optionsListControl\",\"width\":\"medium\",\"explicitInput\":{\"dataViewId\":\"openclaw\",\"fieldName\":\"openclaw.model\",\"exclude\":false,\"existsSelected\":false,\"selectedOptions\":[],\"searchTechnique\":\"prefix\",\"sort\":{\"by\":\"_count\",\"direction\":\"desc\"}}}}", + "showApplySelections": false + }, + "description": "Monitor OpenClaw LLM Assistant usage, costs, and latencies.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"meta\":{\"type\":\"exists\",\"key\":\"openclaw.session.id\",\"disabled\":false,\"negate\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"exists\":{\"field\":\"openclaw.session.id\"}},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"query\":\"\",\"language\":\"kuery\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false}", + "panelsJSON": "[{\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15\", \"type\": \"index-pattern\"}, {\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"07f12a65-7cd9-42dd-9a0c-33f1012faa15\", \"layerType\": \"data\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": null, \"rangeMax\": null, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#24c292\", \"stop\": 50}, {\"color\": \"#fcd883\", \"stop\": 100}, {\"color\": \"#f6726a\", \"stop\": 101}], \"colorStops\": [{\"color\": \"#24c292\", \"stop\": null}, {\"color\": \"#fcd883\", \"stop\": 50}, {\"color\": \"#f6726a\", \"stop\": 100}], \"continuity\": \"all\", \"maxSteps\": 5}}, \"metricAccessor\": \"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\", \"icon\": \"heart\", \"iconAlign\": \"right\", \"showBar\": false, \"applyColorTo\": \"background\", \"trendlineLayerId\": \"a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\", \"trendlineLayerType\": \"metricTrendline\", \"trendlineTimeAccessor\": \"1ae71cf5-d646-49e2-a50a-9d2831903747\", \"trendlineMetricAccessor\": \"d6ce1e70-ce91-4706-9199-ced2073e5790\", \"secondaryTrend\": {\"type\": \"none\"}, \"secondaryLabelPosition\": \"before\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\": {\"columns\": {\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\": {\"label\": \"openclaw.cost.usd \", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}}, \"columnOrder\": [\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}}, \"a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\": {\"linkToLayers\": [\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\"], \"columns\": {\"1ae71cf5-d646-49e2-a50a-9d2831903747\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"d6ce1e70-ce91-4706-9199-ced2073e5790\": {\"label\": \"openclaw.cost.usd \", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}}, \"columnOrder\": [\"1ae71cf5-d646-49e2-a50a-9d2831903747\", \"d6ce1e70-ce91-4706-9199-ced2073e5790\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}}}}, \"indexpattern\": {\"layers\": {}}, \"textBased\": {\"layers\": {}}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"350f4119-1a32-4036-802c-ff13e06e2d5a\", \"gridData\": {\"y\": 1, \"x\": 0, \"w\": 7, \"h\": 9, \"i\": \"350f4119-1a32-4036-802c-ff13e06e2d5a\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"type\": \"index-pattern\", \"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15\"}, {\"type\": \"index-pattern\", \"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\"}], \"state\": {\"visualization\": {\"layerId\": \"07f12a65-7cd9-42dd-9a0c-33f1012faa15\", \"layerType\": \"data\", \"metricAccessor\": \"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\", \"icon\": \"heart\", \"iconAlign\": \"right\", \"showBar\": false, \"applyColorTo\": \"background\", \"trendlineLayerId\": \"a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\", \"trendlineLayerType\": \"metricTrendline\", \"trendlineTimeAccessor\": \"1ae71cf5-d646-49e2-a50a-9d2831903747\", \"trendlineMetricAccessor\": \"d6ce1e70-ce91-4706-9199-ced2073e5790\", \"secondaryTrend\": {\"type\": \"none\"}, \"secondaryLabelPosition\": \"before\", \"color\": \"#F6726A\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\": {\"columns\": {\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\": {\"label\": \"maximum single cost\", \"dataType\": \"number\", \"operationType\": \"max\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}, \"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}, \"a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\": {\"linkToLayers\": [\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\"], \"columns\": {\"1ae71cf5-d646-49e2-a50a-9d2831903747\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"d6ce1e70-ce91-4706-9199-ced2073e5790\": {\"label\": \"maximum single cost\", \"dataType\": \"number\", \"operationType\": \"max\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}, \"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"1ae71cf5-d646-49e2-a50a-9d2831903747\", \"d6ce1e70-ce91-4706-9199-ced2073e5790\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"4c40975a-e5b2-4358-80f3-169e70b3b14a\", \"gridData\": {\"y\": 1, \"x\": 7, \"w\": 7, \"h\": 9, \"i\": \"4c40975a-e5b2-4358-80f3-169e70b3b14a\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-c380e117-f83e-4210-9246-2156e79893ab\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"title\": \"Empty XY chart\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\", \"preferredSeriesType\": \"bar_stacked\", \"layers\": [{\"layerId\": \"c380e117-f83e-4210-9246-2156e79893ab\", \"accessors\": [\"527eb533-39e0-43e0-a963-cefe8ccde2f6\"], \"position\": \"top\", \"seriesType\": \"bar_stacked\", \"showGridlines\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"xAccessor\": \"71e0df0d-bc32-485b-8338-05d8c9e664c2\", \"splitAccessor\": \"fe11ef82-f0c2-4c55-b22c-441864e9c8c3\"}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"c380e117-f83e-4210-9246-2156e79893ab\": {\"columns\": {\"71e0df0d-bc32-485b-8338-05d8c9e664c2\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"527eb533-39e0-43e0-a963-cefe8ccde2f6\": {\"label\": \"openclaw.cost.usd\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}, \"fe11ef82-f0c2-4c55-b22c-441864e9c8c3\": {\"label\": \"Top 3 Sessions\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.session.id\", \"isBucketed\": true, \"params\": {\"size\": 3, \"orderBy\": {\"type\": \"column\", \"columnId\": \"527eb533-39e0-43e0-a963-cefe8ccde2f6\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}}, \"columnOrder\": [\"fe11ef82-f0c2-4c55-b22c-441864e9c8c3\", \"71e0df0d-bc32-485b-8338-05d8c9e664c2\", \"527eb533-39e0-43e0-a963-cefe8ccde2f6\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}}}}, \"indexpattern\": {\"layers\": {}}, \"textBased\": {\"layers\": {}}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"53f31dd7-428e-426b-82ca-8dec695107e6\", \"gridData\": {\"y\": 1, \"x\": 14, \"w\": 34, \"h\": 9, \"i\": \"53f31dd7-428e-426b-82ca-8dec695107e6\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsPie\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15\", \"type\": \"index-pattern\"}, {\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"shape\": \"donut\", \"layers\": [{\"layerId\": \"07f12a65-7cd9-42dd-9a0c-33f1012faa15\", \"primaryGroups\": [\"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\"], \"metrics\": [\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"], \"numberDisplay\": \"percent\", \"categoryDisplay\": \"default\", \"legendDisplay\": \"default\", \"nestedLegend\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"emptySizeRatio\": 0.54, \"collapseFns\": {\"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\": \"\"}}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\": {\"columns\": {\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\": {\"label\": \"openclaw.cost.usd \", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}, \"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\": {\"label\": \"Top 5 Models\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.model\", \"isBucketed\": true, \"params\": {\"size\": 5, \"orderBy\": {\"type\": \"column\", \"columnId\": \"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}}, \"columnOrder\": [\"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\", \"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}, \"a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\": {\"linkToLayers\": [\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\"], \"columns\": {\"1ae71cf5-d646-49e2-a50a-9d2831903747\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"d6ce1e70-ce91-4706-9199-ced2073e5790\": {\"label\": \"openclaw.cost.usd \", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}}, \"columnOrder\": [\"1ae71cf5-d646-49e2-a50a-9d2831903747\", \"d6ce1e70-ce91-4706-9199-ced2073e5790\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"b60c7c6c-2a45-4132-a3dd-e1bf6e6cb87f\", \"gridData\": {\"y\": 10, \"x\": 0, \"w\": 7, \"h\": 9, \"i\": \"b60c7c6c-2a45-4132-a3dd-e1bf6e6cb87f\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsPie\", \"type\": \"lens\", \"references\": [{\"type\": \"index-pattern\", \"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15\"}, {\"type\": \"index-pattern\", \"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\"}], \"state\": {\"visualization\": {\"shape\": \"donut\", \"layers\": [{\"layerId\": \"07f12a65-7cd9-42dd-9a0c-33f1012faa15\", \"primaryGroups\": [\"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\"], \"metrics\": [\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"], \"numberDisplay\": \"percent\", \"categoryDisplay\": \"default\", \"legendDisplay\": \"default\", \"nestedLegend\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"emptySizeRatio\": 0.54, \"collapseFns\": {\"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\": \"\"}}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\": {\"columns\": {\"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\": {\"label\": \"openclaw.cost.usd \", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}, \"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\": {\"label\": \"openclaw.agent.id \\u7684\\u6392\\u540d\\u524d 5 \\u7684\\u503c\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.agent.id\", \"isBucketed\": true, \"params\": {\"size\": 5, \"orderBy\": {\"type\": \"column\", \"columnId\": \"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false, \"secondaryFields\": []}}}, \"columnOrder\": [\"cab655af-1c55-4bfa-983a-b1ffb4f75dcc\", \"fc1f85a8-c9d8-4481-86e0-95f76cca23e7\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}, \"a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64\": {\"linkToLayers\": [\"07f12a65-7cd9-42dd-9a0c-33f1012faa15\"], \"columns\": {\"1ae71cf5-d646-49e2-a50a-9d2831903747\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"d6ce1e70-ce91-4706-9199-ced2073e5790\": {\"label\": \"openclaw.cost.usd \", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}}, \"columnOrder\": [\"1ae71cf5-d646-49e2-a50a-9d2831903747\", \"d6ce1e70-ce91-4706-9199-ced2073e5790\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"305320df-dad5-4c70-8afc-953ddec98d8f\", \"gridData\": {\"y\": 10, \"x\": 7, \"w\": 7, \"h\": 9, \"i\": \"305320df-dad5-4c70-8afc-953ddec98d8f\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-c380e117-f83e-4210-9246-2156e79893ab\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"title\": \"Empty XY chart\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\", \"preferredSeriesType\": \"bar_stacked\", \"layers\": [{\"layerId\": \"c380e117-f83e-4210-9246-2156e79893ab\", \"accessors\": [\"527eb533-39e0-43e0-a963-cefe8ccde2f6\"], \"position\": \"top\", \"seriesType\": \"bar_stacked\", \"showGridlines\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"xAccessor\": \"71e0df0d-bc32-485b-8338-05d8c9e664c2\", \"splitAccessor\": \"fe11ef82-f0c2-4c55-b22c-441864e9c8c3\"}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"c380e117-f83e-4210-9246-2156e79893ab\": {\"columns\": {\"71e0df0d-bc32-485b-8338-05d8c9e664c2\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"527eb533-39e0-43e0-a963-cefe8ccde2f6\": {\"label\": \"openclaw.cost.usd\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}, \"fe11ef82-f0c2-4c55-b22c-441864e9c8c3\": {\"label\": \"Top 3 Models\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.model\", \"isBucketed\": true, \"params\": {\"size\": 3, \"orderBy\": {\"type\": \"column\", \"columnId\": \"527eb533-39e0-43e0-a963-cefe8ccde2f6\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false, \"secondaryFields\": []}}}, \"columnOrder\": [\"fe11ef82-f0c2-4c55-b22c-441864e9c8c3\", \"71e0df0d-bc32-485b-8338-05d8c9e664c2\", \"527eb533-39e0-43e0-a963-cefe8ccde2f6\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"e55be123-af30-4aff-a89b-20c0faf82ffb\", \"gridData\": {\"y\": 10, \"x\": 14, \"w\": 34, \"h\": 9, \"i\": \"e55be123-af30-4aff-a89b-20c0faf82ffb\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-2be1891f-2e6b-419b-882f-737847e1ee23\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"2be1891f-2e6b-419b-882f-737847e1ee23\", \"layerType\": \"data\", \"metricAccessor\": \"98194ece-1dbf-478e-bbf9-0475a16c0da4\", \"color\": \"#61A2FF\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"2be1891f-2e6b-419b-882f-737847e1ee23\": {\"columns\": {\"98194ece-1dbf-478e-bbf9-0475a16c0da4\": {\"label\": \"Invocations\", \"dataType\": \"number\", \"operationType\": \"count\", \"isBucketed\": false, \"sourceField\": \"___records___\", \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"98194ece-1dbf-478e-bbf9-0475a16c0da4\"], \"incompleteColumns\": {}, \"sampling\": 1, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"3661ae3e-2717-4787-9c6e-7f468bfb24cc\", \"gridData\": {\"y\": 20, \"x\": 0, \"w\": 8, \"h\": 8, \"i\": \"3661ae3e-2717-4787-9c6e-7f468bfb24cc\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-92c88f67-0b5f-4fd6-be18-0a873772429e\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"title\": \"Empty XY chart\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\", \"preferredSeriesType\": \"line\", \"layers\": [{\"layerId\": \"92c88f67-0b5f-4fd6-be18-0a873772429e\", \"accessors\": [\"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\"], \"position\": \"top\", \"seriesType\": \"line\", \"showGridlines\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"xAccessor\": \"3d4f30fc-cd44-4af3-b981-619cb87f84de\", \"splitAccessor\": \"6b5ad6f4-db31-4ef3-bfc2-0bc88ce6891d\"}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"92c88f67-0b5f-4fd6-be18-0a873772429e\": {\"columns\": {\"3d4f30fc-cd44-4af3-b981-619cb87f84de\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\": {\"label\": \"Invocations\", \"dataType\": \"number\", \"operationType\": \"count\", \"isBucketed\": false, \"sourceField\": \"___records___\", \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}, \"6b5ad6f4-db31-4ef3-bfc2-0bc88ce6891d\": {\"label\": \"Top 3 Agents\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.agent.id\", \"isBucketed\": true, \"params\": {\"size\": 3, \"orderBy\": {\"type\": \"column\", \"columnId\": \"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false, \"secondaryFields\": []}}}, \"columnOrder\": [\"6b5ad6f4-db31-4ef3-bfc2-0bc88ce6891d\", \"3d4f30fc-cd44-4af3-b981-619cb87f84de\", \"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"40088c9a-11b6-40dd-8703-247a8cc708c7\", \"gridData\": {\"y\": 20, \"x\": 8, \"w\": 40, \"h\": 8, \"i\": \"40088c9a-11b6-40dd-8703-247a8cc708c7\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-0c19d0a3-8bc7-485f-a445-e4d498c72f81\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"0c19d0a3-8bc7-485f-a445-e4d498c72f81\", \"layerType\": \"data\", \"metricAccessor\": \"6303831f-137b-4f90-b717-46c39d91d345\", \"secondaryTrend\": {\"type\": \"none\"}, \"secondaryLabelPosition\": \"before\", \"color\": \"#FFC7DB\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"0c19d0a3-8bc7-485f-a445-e4d498c72f81\": {\"columns\": {\"6303831f-137b-4f90-b717-46c39d91d345\": {\"label\": \"Sessions\", \"dataType\": \"number\", \"operationType\": \"unique_count\", \"sourceField\": \"openclaw.session.id\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"6303831f-137b-4f90-b717-46c39d91d345\"], \"incompleteColumns\": {}, \"sampling\": 1, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"4eecf036-b5a9-46de-86d3-188c197eae2a\", \"gridData\": {\"y\": 28, \"x\": 0, \"w\": 8, \"h\": 8, \"i\": \"4eecf036-b5a9-46de-86d3-188c197eae2a\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-92c88f67-0b5f-4fd6-be18-0a873772429e\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"title\": \"Empty XY chart\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\", \"preferredSeriesType\": \"bar\", \"layers\": [{\"layerId\": \"92c88f67-0b5f-4fd6-be18-0a873772429e\", \"accessors\": [\"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\"], \"position\": \"top\", \"seriesType\": \"bar\", \"showGridlines\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"xAccessor\": \"3d4f30fc-cd44-4af3-b981-619cb87f84de\", \"splitAccessor\": \"6b5ad6f4-db31-4ef3-bfc2-0bc88ce6891d\"}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"92c88f67-0b5f-4fd6-be18-0a873772429e\": {\"columns\": {\"3d4f30fc-cd44-4af3-b981-619cb87f84de\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\": {\"label\": \"Active Sessions\", \"dataType\": \"number\", \"operationType\": \"unique_count\", \"sourceField\": \"openclaw.session.id\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}, \"6b5ad6f4-db31-4ef3-bfc2-0bc88ce6891d\": {\"label\": \"Top 3 Agents\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.agent.id\", \"isBucketed\": true, \"params\": {\"size\": 3, \"orderBy\": {\"type\": \"column\", \"columnId\": \"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false, \"secondaryFields\": []}}}, \"columnOrder\": [\"6b5ad6f4-db31-4ef3-bfc2-0bc88ce6891d\", \"3d4f30fc-cd44-4af3-b981-619cb87f84de\", \"ec093f21-a3d8-4f87-aacf-bb5d5ee80cea\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"b2339b0a-10b4-4505-a88d-4c83453bf34c\", \"gridData\": {\"y\": 28, \"x\": 8, \"w\": 40, \"h\": 8, \"i\": \"b2339b0a-10b4-4505-a88d-4c83453bf34c\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsPie\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-0d9383c5-70ba-4bb8-8863-0ff3b88e19c4\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"shape\": \"pie\", \"layers\": [{\"layerId\": \"0d9383c5-70ba-4bb8-8863-0ff3b88e19c4\", \"primaryGroups\": [\"2a9dc667-b38a-412a-b9c0-80c7956d9e61\"], \"metrics\": [\"f03dd27f-33e0-4bc8-b907-e1a9f0e74f68\"], \"numberDisplay\": \"percent\", \"categoryDisplay\": \"default\", \"legendDisplay\": \"default\", \"nestedLegend\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"0d9383c5-70ba-4bb8-8863-0ff3b88e19c4\": {\"columns\": {\"2a9dc667-b38a-412a-b9c0-80c7956d9e61\": {\"label\": \"Top 5 Roles\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.role\", \"isBucketed\": true, \"params\": {\"size\": 5, \"orderBy\": {\"type\": \"column\", \"columnId\": \"f03dd27f-33e0-4bc8-b907-e1a9f0e74f68\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}, \"f03dd27f-33e0-4bc8-b907-e1a9f0e74f68\": {\"label\": \"Count\", \"dataType\": \"number\", \"operationType\": \"count\", \"isBucketed\": false, \"sourceField\": \"___records___\", \"params\": {\"emptyAsNull\": true}}}, \"columnOrder\": [\"2a9dc667-b38a-412a-b9c0-80c7956d9e61\", \"f03dd27f-33e0-4bc8-b907-e1a9f0e74f68\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}}}}, \"indexpattern\": {\"layers\": {}}, \"textBased\": {\"layers\": {}}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"d61fedab-d88c-45b4-a249-f15a80b66fc9\", \"gridData\": {\"y\": 36, \"x\": 0, \"w\": 13, \"h\": 12, \"i\": \"d61fedab-d88c-45b4-a249-f15a80b66fc9\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-dbd15503-d066-4d97-8b1c-b2f04ccbf759\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"dbd15503-d066-4d97-8b1c-b2f04ccbf759\", \"layerType\": \"data\", \"metricAccessor\": \"84ad6c79-53ef-4e1d-beb2-20608bf1cafe\", \"color\": \"#FCD883\", \"secondaryTrend\": {\"type\": \"none\"}, \"secondaryLabelPosition\": \"before\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"dbd15503-d066-4d97-8b1c-b2f04ccbf759\": {\"columns\": {\"84ad6c79-53ef-4e1d-beb2-20608bf1cafe\": {\"label\": \"Tool Calls\", \"dataType\": \"number\", \"operationType\": \"count\", \"isBucketed\": false, \"sourceField\": \"___records___\", \"filter\": {\"query\": \"openclaw.tool_calls.name : * \", \"language\": \"kuery\"}, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"84ad6c79-53ef-4e1d-beb2-20608bf1cafe\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}}}}, \"indexpattern\": {\"layers\": {}}, \"textBased\": {\"layers\": {}}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"c1ec2e18-342e-493d-a38c-5250b0990190\", \"gridData\": {\"y\": 36, \"x\": 13, \"w\": 5, \"h\": 6, \"i\": \"c1ec2e18-342e-493d-a38c-5250b0990190\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsTagcloud\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-967808ff-790a-445d-ae0e-6aa106eda1d0\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"967808ff-790a-445d-ae0e-6aa106eda1d0\", \"layerType\": \"data\", \"maxFontSize\": 72, \"minFontSize\": 18, \"orientation\": \"single\", \"showLabel\": true, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"tagAccessor\": \"9dcf8816-5021-4d6c-be73-0ee9ff9365fb\", \"valueAccessor\": \"8f61b9cf-9ad3-4e4e-a63c-fda164d5eda6\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"967808ff-790a-445d-ae0e-6aa106eda1d0\": {\"columns\": {\"9dcf8816-5021-4d6c-be73-0ee9ff9365fb\": {\"label\": \"most frequent tools called\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.tool_calls.name\", \"isBucketed\": true, \"params\": {\"size\": 10, \"orderBy\": {\"type\": \"column\", \"columnId\": \"8f61b9cf-9ad3-4e4e-a63c-fda164d5eda6\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}, \"customLabel\": true}, \"8f61b9cf-9ad3-4e4e-a63c-fda164d5eda6\": {\"label\": \"recall\", \"dataType\": \"number\", \"operationType\": \"count\", \"isBucketed\": false, \"sourceField\": \"___records___\", \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"9dcf8816-5021-4d6c-be73-0ee9ff9365fb\", \"8f61b9cf-9ad3-4e4e-a63c-fda164d5eda6\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"e1d898c5-9161-42c6-98f2-55e709beb8ed\", \"gridData\": {\"y\": 36, \"x\": 18, \"w\": 30, \"h\": 12, \"i\": \"e1d898c5-9161-42c6-98f2-55e709beb8ed\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-dbd15503-d066-4d97-8b1c-b2f04ccbf759\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"dbd15503-d066-4d97-8b1c-b2f04ccbf759\", \"layerType\": \"data\", \"metricAccessor\": \"84ad6c79-53ef-4e1d-beb2-20608bf1cafe\", \"color\": \"#EAAE01\", \"secondaryTrend\": {\"type\": \"none\"}, \"secondaryLabelPosition\": \"before\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"dbd15503-d066-4d97-8b1c-b2f04ccbf759\": {\"columns\": {\"84ad6c79-53ef-4e1d-beb2-20608bf1cafe\": {\"label\": \"Thinkings\", \"dataType\": \"number\", \"operationType\": \"count\", \"isBucketed\": false, \"sourceField\": \"___records___\", \"filter\": {\"query\": \"openclaw.thinking : * \", \"language\": \"kuery\"}, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"84ad6c79-53ef-4e1d-beb2-20608bf1cafe\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"7ef2d742-baaf-42ec-8782-9014da431130\", \"gridData\": {\"y\": 42, \"x\": 13, \"w\": 5, \"h\": 6, \"i\": \"7ef2d742-baaf-42ec-8782-9014da431130\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-de3ca35a-11c8-4c2d-abd9-d8c320d4667b\", \"type\": \"index-pattern\"}, {\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\", \"layerType\": \"data\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": null, \"rangeMax\": null, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#24c292\", \"stop\": 10000000}, {\"color\": \"#fcd883\", \"stop\": 20000000}, {\"color\": \"#f6726a\", \"stop\": 38277710}], \"colorStops\": [{\"color\": \"#24c292\", \"stop\": null}, {\"color\": \"#fcd883\", \"stop\": 10000000}, {\"color\": \"#f6726a\", \"stop\": 20000000}], \"continuity\": \"all\", \"maxSteps\": 5}}, \"metricAccessor\": \"4b3a77d8-78ef-418f-b1f5-97f9df488268\", \"applyColorTo\": \"background\", \"showBar\": false, \"trendlineLayerId\": \"f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\", \"trendlineLayerType\": \"metricTrendline\", \"trendlineTimeAccessor\": \"1afe782e-b0e1-4fa6-860e-20735d1a955e\", \"trendlineMetricAccessor\": \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\", \"icon\": \"compute\", \"iconAlign\": \"right\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\": {\"columns\": {\"4b3a77d8-78ef-418f-b1f5-97f9df488268\": {\"label\": \"input_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.input_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"4b3a77d8-78ef-418f-b1f5-97f9df488268\"], \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}, \"f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\": {\"linkToLayers\": [\"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\"], \"columns\": {\"1afe782e-b0e1-4fa6-860e-20735d1a955e\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\": {\"label\": \"input_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.input_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"1afe782e-b0e1-4fa6-860e-20735d1a955e\", \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"51b9b005-4bad-4d3e-a71d-8bb42380cb51\", \"gridData\": {\"y\": 49, \"x\": 0, \"w\": 16, \"h\": 6, \"i\": \"51b9b005-4bad-4d3e-a71d-8bb42380cb51\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-de3ca35a-11c8-4c2d-abd9-d8c320d4667b\", \"type\": \"index-pattern\"}, {\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\", \"layerType\": \"data\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": null, \"rangeMax\": null, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#24c292\", \"stop\": 4000000}, {\"color\": \"#f6726a\", \"stop\": 10000000}, {\"color\": \"#fcd883\", \"stop\": 10000001}], \"colorStops\": [{\"color\": \"#24c292\", \"stop\": null}, {\"color\": \"#f6726a\", \"stop\": 4000000}, {\"color\": \"#fcd883\", \"stop\": 10000000}], \"continuity\": \"all\", \"maxSteps\": 5}}, \"metricAccessor\": \"4b3a77d8-78ef-418f-b1f5-97f9df488268\", \"applyColorTo\": \"background\", \"showBar\": false, \"trendlineLayerId\": \"f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\", \"trendlineLayerType\": \"metricTrendline\", \"trendlineTimeAccessor\": \"1afe782e-b0e1-4fa6-860e-20735d1a955e\", \"trendlineMetricAccessor\": \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\", \"icon\": \"compute\", \"iconAlign\": \"right\", \"secondaryTrend\": {\"type\": \"none\"}, \"secondaryLabelPosition\": \"before\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\": {\"columns\": {\"4b3a77d8-78ef-418f-b1f5-97f9df488268\": {\"label\": \"output_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.output_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"4b3a77d8-78ef-418f-b1f5-97f9df488268\"], \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}, \"f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\": {\"linkToLayers\": [\"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\"], \"columns\": {\"1afe782e-b0e1-4fa6-860e-20735d1a955e\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\": {\"label\": \"output_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.output_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"1afe782e-b0e1-4fa6-860e-20735d1a955e\", \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"bcec83a7-43a6-4304-abfd-41d48fcc9dc5\", \"gridData\": {\"y\": 49, \"x\": 16, \"w\": 16, \"h\": 6, \"i\": \"bcec83a7-43a6-4304-abfd-41d48fcc9dc5\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-de3ca35a-11c8-4c2d-abd9-d8c320d4667b\", \"type\": \"index-pattern\"}, {\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"layerId\": \"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\", \"layerType\": \"data\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": null, \"rangeMax\": null, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#24c292\", \"stop\": 10000000}, {\"color\": \"#fcd883\", \"stop\": 20000000}, {\"color\": \"#f6726a\", \"stop\": 38569712}], \"colorStops\": [{\"color\": \"#24c292\", \"stop\": null}, {\"color\": \"#fcd883\", \"stop\": 10000000}, {\"color\": \"#f6726a\", \"stop\": 20000000}], \"continuity\": \"all\", \"maxSteps\": 5}}, \"metricAccessor\": \"4b3a77d8-78ef-418f-b1f5-97f9df488268\", \"applyColorTo\": \"background\", \"showBar\": false, \"trendlineLayerId\": \"f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\", \"trendlineLayerType\": \"metricTrendline\", \"trendlineTimeAccessor\": \"1afe782e-b0e1-4fa6-860e-20735d1a955e\", \"trendlineMetricAccessor\": \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\", \"icon\": \"compute\", \"iconAlign\": \"right\", \"secondaryTrend\": {\"type\": \"none\"}, \"secondaryLabelPosition\": \"before\", \"secondaryMetricAccessor\": \"ef73b0b8-c715-4f1c-b5f3-7ca5e43863d2\", \"trendlineSecondaryMetricAccessor\": \"02521fa9-e2bb-4094-a63b-78ff675cb947\"}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\": {\"columns\": {\"4b3a77d8-78ef-418f-b1f5-97f9df488268\": {\"label\": \"Total_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.total_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}, \"ef73b0b8-c715-4f1c-b5f3-7ca5e43863d2\": {\"label\": \"openclaw.cost.usd\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}}, \"columnOrder\": [\"4b3a77d8-78ef-418f-b1f5-97f9df488268\", \"ef73b0b8-c715-4f1c-b5f3-7ca5e43863d2\"], \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}, \"f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf\": {\"linkToLayers\": [\"de3ca35a-11c8-4c2d-abd9-d8c320d4667b\"], \"columns\": {\"1afe782e-b0e1-4fa6-860e-20735d1a955e\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"3213f572-4875-43e4-a6d2-d4c4e1f2856eX0\": {\"label\": \"Token Subset\", \"dataType\": \"number\", \"operationType\": \"max\", \"sourceField\": \"openclaw.usage.total_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": false}, \"customLabel\": true}, \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\": {\"label\": \"Total_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.total_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}, \"02521fa9-e2bb-4094-a63b-78ff675cb947\": {\"label\": \"openclaw.cost.usd\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.cost.usd\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true, \"format\": {\"id\": \"custom\", \"params\": {\"decimals\": 0, \"pattern\": \"0,0.[000] $\"}}}, \"customLabel\": true}}, \"columnOrder\": [\"1afe782e-b0e1-4fa6-860e-20735d1a955e\", \"02521fa9-e2bb-4094-a63b-78ff675cb947\", \"3213f572-4875-43e4-a6d2-d4c4e1f2856e\", \"3213f572-4875-43e4-a6d2-d4c4e1f2856eX0\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"bc373590-bef0-413d-b23e-8ead3d64c274\", \"gridData\": {\"y\": 49, \"x\": 32, \"w\": 16, \"h\": 6, \"i\": \"bc373590-bef0-413d-b23e-8ead3d64c274\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsPie\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-a3257bbc-8c5a-4090-a41a-7273b72530ed\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"shape\": \"mosaic\", \"layers\": [{\"layerId\": \"a3257bbc-8c5a-4090-a41a-7273b72530ed\", \"primaryGroups\": [\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\"], \"secondaryGroups\": [\"e19fc18a-051e-40f3-a122-43993fc4c34a\"], \"metrics\": [\"a48284db-117b-474e-b157-aa029640b487\"], \"numberDisplay\": \"percent\", \"categoryDisplay\": \"default\", \"legendDisplay\": \"default\", \"nestedLegend\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"allowMultipleMetrics\": true}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"a3257bbc-8c5a-4090-a41a-7273b72530ed\": {\"columns\": {\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\": {\"label\": \"Top 5 Sessions\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.session.id\", \"isBucketed\": true, \"params\": {\"size\": 5, \"orderBy\": {\"type\": \"column\", \"columnId\": \"a48284db-117b-474e-b157-aa029640b487\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}, \"a48284db-117b-474e-b157-aa029640b487\": {\"label\": \"Total Input Tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.input_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}}, \"e19fc18a-051e-40f3-a122-43993fc4c34a\": {\"label\": \"Top 3 Agents\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.agent.id\", \"isBucketed\": true, \"params\": {\"size\": 3, \"orderBy\": {\"type\": \"column\", \"columnId\": \"a48284db-117b-474e-b157-aa029640b487\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}}, \"columnOrder\": [\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\", \"e19fc18a-051e-40f3-a122-43993fc4c34a\", \"a48284db-117b-474e-b157-aa029640b487\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}}}}, \"indexpattern\": {\"layers\": {}}, \"textBased\": {\"layers\": {}}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"a4173ccc-f901-45bc-a816-fa225c804039\", \"gridData\": {\"y\": 55, \"x\": 0, \"w\": 16, \"h\": 15, \"i\": \"a4173ccc-f901-45bc-a816-fa225c804039\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsPie\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-a3257bbc-8c5a-4090-a41a-7273b72530ed\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"shape\": \"mosaic\", \"layers\": [{\"layerId\": \"a3257bbc-8c5a-4090-a41a-7273b72530ed\", \"primaryGroups\": [\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\"], \"secondaryGroups\": [\"e19fc18a-051e-40f3-a122-43993fc4c34a\"], \"metrics\": [\"a48284db-117b-474e-b157-aa029640b487\"], \"numberDisplay\": \"percent\", \"categoryDisplay\": \"default\", \"legendDisplay\": \"default\", \"nestedLegend\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"allowMultipleMetrics\": true}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"a3257bbc-8c5a-4090-a41a-7273b72530ed\": {\"columns\": {\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\": {\"label\": \"Top 5 Sessions\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.session.id\", \"isBucketed\": true, \"params\": {\"size\": 5, \"orderBy\": {\"type\": \"column\", \"columnId\": \"a48284db-117b-474e-b157-aa029640b487\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}, \"a48284db-117b-474e-b157-aa029640b487\": {\"label\": \"Total Output Tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.output_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}}, \"e19fc18a-051e-40f3-a122-43993fc4c34a\": {\"label\": \"Top 3 Agents\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.agent.id\", \"isBucketed\": true, \"params\": {\"size\": 3, \"orderBy\": {\"type\": \"column\", \"columnId\": \"a48284db-117b-474e-b157-aa029640b487\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}}, \"columnOrder\": [\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\", \"e19fc18a-051e-40f3-a122-43993fc4c34a\", \"a48284db-117b-474e-b157-aa029640b487\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"8e95c0b5-10c9-4eb0-9ea8-c5adf6c1fcdf\", \"gridData\": {\"y\": 55, \"x\": 16, \"w\": 16, \"h\": 15, \"i\": \"8e95c0b5-10c9-4eb0-9ea8-c5adf6c1fcdf\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"title\": \"\", \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsPie\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-a3257bbc-8c5a-4090-a41a-7273b72530ed\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"shape\": \"mosaic\", \"layers\": [{\"layerId\": \"a3257bbc-8c5a-4090-a41a-7273b72530ed\", \"primaryGroups\": [\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\"], \"secondaryGroups\": [\"e19fc18a-051e-40f3-a122-43993fc4c34a\"], \"metrics\": [\"a48284db-117b-474e-b157-aa029640b487\"], \"numberDisplay\": \"percent\", \"categoryDisplay\": \"default\", \"legendDisplay\": \"default\", \"nestedLegend\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"allowMultipleMetrics\": true}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"a3257bbc-8c5a-4090-a41a-7273b72530ed\": {\"columns\": {\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\": {\"label\": \"Top 5 Sessions\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.session.id\", \"isBucketed\": true, \"params\": {\"size\": 5, \"orderBy\": {\"type\": \"column\", \"columnId\": \"a48284db-117b-474e-b157-aa029640b487\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}, \"a48284db-117b-474e-b157-aa029640b487\": {\"label\": \"Total Tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.total_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}}, \"e19fc18a-051e-40f3-a122-43993fc4c34a\": {\"label\": \"Top 3 Agents\", \"dataType\": \"string\", \"operationType\": \"terms\", \"sourceField\": \"openclaw.agent.id\", \"isBucketed\": true, \"params\": {\"size\": 3, \"orderBy\": {\"type\": \"column\", \"columnId\": \"a48284db-117b-474e-b157-aa029640b487\"}, \"orderDirection\": \"desc\", \"otherBucket\": true, \"missingBucket\": false, \"parentFormat\": {\"id\": \"terms\"}, \"include\": [], \"exclude\": [], \"includeIsRegex\": false, \"excludeIsRegex\": false}}}, \"columnOrder\": [\"1210ac98-6ee7-4361-a6d8-5c9212cfae65\", \"e19fc18a-051e-40f3-a122-43993fc4c34a\", \"a48284db-117b-474e-b157-aa029640b487\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}, \"indexPatternId\": \"openclaw\"}}, \"currentIndexPatternId\": \"openclaw\"}, \"indexpattern\": {\"layers\": {}, \"currentIndexPatternId\": \"openclaw\"}, \"textBased\": {\"layers\": {}, \"indexPatternRefs\": [{\"id\": \"openclaw\", \"title\": \"logs-openclaw*\", \"timeField\": \"@timestamp\"}]}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"a824c8af-3351-4b96-8ddd-35cb6e8f1201\", \"gridData\": {\"y\": 55, \"x\": 32, \"w\": 16, \"h\": 15, \"i\": \"a824c8af-3351-4b96-8ddd-35cb6e8f1201\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"attributes\": {\"title\": \"\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [{\"id\": \"openclaw\", \"name\": \"indexpattern-datasource-layer-1f079462-bac5-423a-8c81-b95e44752ef1\", \"type\": \"index-pattern\"}], \"state\": {\"visualization\": {\"title\": \"Empty XY chart\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\", \"preferredSeriesType\": \"area_stacked\", \"layers\": [{\"layerId\": \"1f079462-bac5-423a-8c81-b95e44752ef1\", \"accessors\": [\"78f2645c-c76b-4db4-9386-b059b54f875e\", \"a3218ada-3cf1-4f4f-b6a5-cad738f51742\"], \"position\": \"top\", \"seriesType\": \"area_stacked\", \"showGridlines\": false, \"layerType\": \"data\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rules\": [{\"type\": \"other\"}], \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"default\", \"colorMode\": {\"type\": \"categorical\"}}, \"xAccessor\": \"77330978-93df-4b3f-8899-f90b71dc7ae4\", \"yConfig\": [{\"forAccessor\": \"a3218ada-3cf1-4f4f-b6a5-cad738f51742\", \"color\": \"#eaae01\"}]}]}, \"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filters\": [], \"datasourceStates\": {\"formBased\": {\"layers\": {\"1f079462-bac5-423a-8c81-b95e44752ef1\": {\"columns\": {\"77330978-93df-4b3f-8899-f90b71dc7ae4\": {\"label\": \"@timestamp\", \"dataType\": \"date\", \"operationType\": \"date_histogram\", \"sourceField\": \"@timestamp\", \"isBucketed\": true, \"params\": {\"interval\": \"auto\", \"includeEmptyRows\": true, \"dropPartials\": false}}, \"78f2645c-c76b-4db4-9386-b059b54f875e\": {\"label\": \"input_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.input_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}, \"a3218ada-3cf1-4f4f-b6a5-cad738f51742\": {\"label\": \"output_tokens\", \"dataType\": \"number\", \"operationType\": \"sum\", \"sourceField\": \"openclaw.usage.output_tokens\", \"isBucketed\": false, \"params\": {\"emptyAsNull\": true}, \"customLabel\": true}}, \"columnOrder\": [\"77330978-93df-4b3f-8899-f90b71dc7ae4\", \"78f2645c-c76b-4db4-9386-b059b54f875e\", \"a3218ada-3cf1-4f4f-b6a5-cad738f51742\"], \"sampling\": 1, \"ignoreGlobalFilters\": false, \"incompleteColumns\": {}}}}, \"indexpattern\": {\"layers\": {}}, \"textBased\": {\"layers\": {}}}, \"internalReferences\": [], \"adHocDataViews\": {}}, \"version\": 1}}, \"panelIndex\": \"7decc098-6acd-4296-b471-729fb68aa962\", \"gridData\": {\"y\": 70, \"x\": 0, \"w\": 48, \"h\": 12, \"i\": \"7decc098-6acd-4296-b471-729fb68aa962\"}}]", + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[OpenClaw] Usage Overview" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2026-03-21T04:27:32.015Z", + "created_by": "u_JlTJULthyrXyE6KY-XsOKK1jB-kKS3MUjcW-HkdeYvw_0", + "id": "openclaw-overview", + "managed": false, + "references": [ + { + "id": "openclaw", + "name": "controlGroup_5ba3b026-028d-4278-ac75-69cbeff2ab0c:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "controlGroup_ba403069-3053-4fae-893b-ced69abc0ed4:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "350f4119-1a32-4036-802c-ff13e06e2d5a:indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "350f4119-1a32-4036-802c-ff13e06e2d5a:indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "4c40975a-e5b2-4358-80f3-169e70b3b14a:indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "4c40975a-e5b2-4358-80f3-169e70b3b14a:indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "53f31dd7-428e-426b-82ca-8dec695107e6:indexpattern-datasource-layer-c380e117-f83e-4210-9246-2156e79893ab", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "b60c7c6c-2a45-4132-a3dd-e1bf6e6cb87f:indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "b60c7c6c-2a45-4132-a3dd-e1bf6e6cb87f:indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "305320df-dad5-4c70-8afc-953ddec98d8f:indexpattern-datasource-layer-07f12a65-7cd9-42dd-9a0c-33f1012faa15", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "305320df-dad5-4c70-8afc-953ddec98d8f:indexpattern-datasource-layer-a54ccfc1-9bda-4f84-8ef0-b7a3b9804f64", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "e55be123-af30-4aff-a89b-20c0faf82ffb:indexpattern-datasource-layer-c380e117-f83e-4210-9246-2156e79893ab", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "3661ae3e-2717-4787-9c6e-7f468bfb24cc:indexpattern-datasource-layer-2be1891f-2e6b-419b-882f-737847e1ee23", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "40088c9a-11b6-40dd-8703-247a8cc708c7:indexpattern-datasource-layer-92c88f67-0b5f-4fd6-be18-0a873772429e", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "4eecf036-b5a9-46de-86d3-188c197eae2a:indexpattern-datasource-layer-0c19d0a3-8bc7-485f-a445-e4d498c72f81", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "b2339b0a-10b4-4505-a88d-4c83453bf34c:indexpattern-datasource-layer-92c88f67-0b5f-4fd6-be18-0a873772429e", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "d61fedab-d88c-45b4-a249-f15a80b66fc9:indexpattern-datasource-layer-0d9383c5-70ba-4bb8-8863-0ff3b88e19c4", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "c1ec2e18-342e-493d-a38c-5250b0990190:indexpattern-datasource-layer-dbd15503-d066-4d97-8b1c-b2f04ccbf759", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "e1d898c5-9161-42c6-98f2-55e709beb8ed:indexpattern-datasource-layer-967808ff-790a-445d-ae0e-6aa106eda1d0", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "7ef2d742-baaf-42ec-8782-9014da431130:indexpattern-datasource-layer-dbd15503-d066-4d97-8b1c-b2f04ccbf759", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "51b9b005-4bad-4d3e-a71d-8bb42380cb51:indexpattern-datasource-layer-de3ca35a-11c8-4c2d-abd9-d8c320d4667b", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "51b9b005-4bad-4d3e-a71d-8bb42380cb51:indexpattern-datasource-layer-f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "bcec83a7-43a6-4304-abfd-41d48fcc9dc5:indexpattern-datasource-layer-de3ca35a-11c8-4c2d-abd9-d8c320d4667b", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "bcec83a7-43a6-4304-abfd-41d48fcc9dc5:indexpattern-datasource-layer-f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "bc373590-bef0-413d-b23e-8ead3d64c274:indexpattern-datasource-layer-de3ca35a-11c8-4c2d-abd9-d8c320d4667b", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "bc373590-bef0-413d-b23e-8ead3d64c274:indexpattern-datasource-layer-f78ec2af-2a2e-45d6-bd46-71e9ec3ccacf", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "a4173ccc-f901-45bc-a816-fa225c804039:indexpattern-datasource-layer-a3257bbc-8c5a-4090-a41a-7273b72530ed", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "8e95c0b5-10c9-4eb0-9ea8-c5adf6c1fcdf:indexpattern-datasource-layer-a3257bbc-8c5a-4090-a41a-7273b72530ed", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "a824c8af-3351-4b96-8ddd-35cb6e8f1201:indexpattern-datasource-layer-a3257bbc-8c5a-4090-a41a-7273b72530ed", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "7decc098-6acd-4296-b471-729fb68aa962:indexpattern-datasource-layer-1f079462-bac5-423a-8c81-b95e44752ef1", + "type": "index-pattern" + }, + { + "id": "openclaw", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "dashboard", + "updated_at": "2026-03-25T08:23:54.287Z", + "updated_by": "u_JlTJULthyrXyE6KY-XsOKK1jB-kKS3MUjcW-HkdeYvw_0", + "version": "WzEyOSwxXQ==" +} diff --git a/packages/openclaw/kibana/search/openclaw-sessions.json b/packages/openclaw/kibana/search/openclaw-sessions.json new file mode 100644 index 00000000000..dcfa6356b74 --- /dev/null +++ b/packages/openclaw/kibana/search/openclaw-sessions.json @@ -0,0 +1,63 @@ +{ + "attributes": { + "columns": [ + "openclaw.cost.usd", + "openclaw.usage.input_tokens", + "openclaw.usage.output_tokens", + "openclaw.usage.total_tokens", + "openclaw.role", + "openclaw.text", + "openclaw.thinking", + "openclaw.tool_calls.arguments", + "openclaw.session.id", + "openclaw.agent.id" + ], + "description": "OpenClaw session data", + "grid": { + "columns": { + "openclaw.cost.usd": { + "width": 138 + }, + "openclaw.role": { + "width": 147 + }, + "openclaw.usage.input_tokens": { + "width": 133 + }, + "openclaw.usage.output_tokens": { + "width": 114 + }, + "openclaw.usage.total_tokens": { + "width": 122 + } + } + }, + "hideChart": false, + "isTextBasedQuery": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"indexRefName\":\"tab_74f35605-7c42-471e-9d1d-fae259e6b324.kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "timeRestore": false, + "title": "Openclaw sessions" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2026-03-19T23:37:48.559Z", + "id": "openclaw-sessions", + "managed": true, + "references": [ + { + "id": "openclaw", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search", + "updated_at": "2026-03-19T23:37:49.333Z", + "version": "WzEyOSwxXQ==" +} diff --git a/packages/openclaw/manifest.yml b/packages/openclaw/manifest.yml new file mode 100644 index 00000000000..2a4ac7dc4d5 --- /dev/null +++ b/packages/openclaw/manifest.yml @@ -0,0 +1,40 @@ +format_version: "3.0.2" +name: openclaw +version: 1.0.3 +title: OpenClaw +description: Collects and parses OpenClaw AI Assistant sessions for LLM Observability. +type: integration +owner: + github: elastic/ecosystem + type: community +conditions: + kibana: + version: "^8.12.0 || ^9.0.0" + elastic: + subscription: basic +categories: + - custom + - security +icons: + - src: /img/openclaw.svg + title: Openclaw Logo + size: 32x32 + type: image/svg+xml +screenshots: + - src: /img/openclaw_usage_dashboard.png + title: Tencent Cloud Audit Dashboard Screenshot + size: 600x600 + type: image/png +policy_templates: + - name: openclaw + title: OpenClaw Session Logs + description: Collect OpenClaw session logs and LLM metrics + icons: + - src: /img/openclaw.svg + title: Openclaw Logo + size: 32x32 + type: image/svg+xml + inputs: + - type: logfile + title: OpenClaw Session Logs + description: Collects OpenClaw JSONL session files