mirror of
https://github.com/hanzoai/insights.git
synced 2026-11-03 00:52:32 +00:00
Mechanically re-derived: bin/debrand runs over a fresh import of posthog/posthog@fa1a9a60d4 (2026-08-06). The pipeline (.hanzo/workflows), the Dockerfiles and bin/docker* entrypoints, compose files, LLM.md and the squashed initial migration are restored from the shipped tree, same as the previous import. The prune's import-closure guard kept 21 products the new core now imports; dropping them is a refactor now, recorded rather than forced.
124 lines
6.3 KiB
JSON
124 lines
6.3 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"properties": {
|
|
"query": {
|
|
"description": "The sparkline query to execute.",
|
|
"properties": {
|
|
"dateRange": {
|
|
"description": "Date range for the sparkline. Defaults to last hour.",
|
|
"properties": {
|
|
"date_from": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Start of the date range. Accepts ISO 8601 timestamps or relative formats: -7d, -1h, -1mStart, etc."
|
|
},
|
|
"date_to": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "End of the date range. Same format as date_from. Omit or null for \"now\"."
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"filterGroup": {
|
|
"default": [],
|
|
"description": "Property filters for the query.",
|
|
"items": {
|
|
"properties": {
|
|
"key": {
|
|
"description": "Attribute key. For type \"log\", use \"message\". For \"log_attribute\"/\"log_resource_attribute\", use the attribute key (e.g. \"k8s.container.name\").",
|
|
"type": "string"
|
|
},
|
|
"operator": {
|
|
"description": "Comparison operator.\n\n* `exact` - exact\n* `is_not` - is_not\n* `icontains` - icontains\n* `not_icontains` - not_icontains\n* `starts_with` - starts_with\n* `not_starts_with` - not_starts_with\n* `ends_with` - ends_with\n* `not_ends_with` - not_ends_with\n* `regex` - regex\n* `not_regex` - not_regex\n* `gt` - gt\n* `lt` - lt\n* `is_date_exact` - is_date_exact\n* `is_date_before` - is_date_before\n* `is_date_after` - is_date_after\n* `is_set` - is_set\n* `is_not_set` - is_not_set",
|
|
"enum": [
|
|
"exact",
|
|
"is_not",
|
|
"icontains",
|
|
"not_icontains",
|
|
"starts_with",
|
|
"not_starts_with",
|
|
"ends_with",
|
|
"not_ends_with",
|
|
"regex",
|
|
"not_regex",
|
|
"gt",
|
|
"lt",
|
|
"is_date_exact",
|
|
"is_date_before",
|
|
"is_date_after",
|
|
"is_set",
|
|
"is_not_set"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "\"log\" filters the log body/message. \"log_attribute\" filters log-level attributes. \"log_resource_attribute\" filters resource-level attributes.\n\n* `log` - log\n* `log_attribute` - log_attribute\n* `log_resource_attribute` - log_resource_attribute",
|
|
"enum": ["log", "log_attribute", "log_resource_attribute"],
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Value to compare against. String, number, or array of strings. Omit for is_set/is_not_set operators."
|
|
}
|
|
},
|
|
"required": ["key", "type", "operator"],
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"personId": {
|
|
"description": "Scope results to one person (UUID or numeric ID). Expanded server-side to the person's distinct IDs and matched against the team's configured distinct-id log attribute keys.",
|
|
"type": "string"
|
|
},
|
|
"searchTerm": {
|
|
"description": "Full-text search term to filter log bodies.",
|
|
"type": "string"
|
|
},
|
|
"serviceNames": {
|
|
"default": [],
|
|
"description": "Filter by service names.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"severityLevels": {
|
|
"default": [],
|
|
"description": "Filter by log severity levels.",
|
|
"items": {
|
|
"description": "* `trace` - trace\n* `debug` - debug\n* `info` - info\n* `warn` - warn\n* `error` - error\n* `fatal` - fatal",
|
|
"enum": ["trace", "debug", "info", "warn", "error", "fatal"],
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"sparklineBreakdownBy": {
|
|
"description": "Break down sparkline by \"severity\" (default) or \"service\".\n\n* `severity` - severity\n* `service` - service",
|
|
"enum": ["severity", "service"],
|
|
"type": "string"
|
|
},
|
|
"sparklineRankBy": {
|
|
"description": "Rank breakdown values by \"count\" (default) or \"bytes\" before collapsing the tail into \"other\".\n\n* `count` - count\n* `bytes` - bytes",
|
|
"enum": ["count", "bytes"],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": ["query"],
|
|
"type": "object"
|
|
}
|