graylog-deploy/dashboards/search_servers.json
byrsapty d76f1e766b Fix the same update-gap bug in step_streams()/step_dashboard() as rules/pipelines/alerts
Both only checked title existence, so editing a stream's rules or a
dashboard's widgets under the same title silently skipped the update
forever. step_dashboard() now diffs the search's queries content
(delete+recreate view+search on change - no subscribers/history to lose,
unlike alerts or streams); step_streams() diffs rules individually by
(field,type,value,inverted) and PUT-updates metadata in place, since
delete+recreating a stream would briefly break live message routing.

Confirmed live on a local test deployment: a false "changed" positive
from search_types list-reordering and from search_servers.json's own
query-format inconsistency (bare string vs the {query_string,type} object
Graylog actually stores) had to be fixed before step_dashboard() settled
into a stable no-op; step_streams() was verified with a full inert
rule-add/remove and a metadata-change round-trip against the live API.
2026-07-23 21:00:06 +03:00

78 lines
3.1 KiB
JSON

{
"queries": [
{
"id": "a3000000-0000-0000-0000-000000000001",
"timerange": {"type": "relative", "range": 604800},
"filter": null,
"filters": [],
"query": {"type": "elasticsearch", "query_string": ""},
"search_types": [
{
"id": "a3000000-0000-0000-0000-000000000011",
"type": "pivot",
"name": "chart",
"timerange": {"type": "relative", "range": 604800},
"query": null,
"streams": ["__SERVERS_STREAM_ID__"],
"stream_categories": [],
"series": [{"type": "count", "id": "Message count", "field": null}],
"sort": [],
"rollup": false,
"row_groups": [{"type": "time", "fields": ["timestamp"], "interval": {"type": "auto", "scaling": 1.0}}],
"column_groups": [{"type": "values", "fields": ["event_type"], "limit": 10, "skip_empty_values": false}],
"filter": null,
"filters": []
},
{
"id": "a3000000-0000-0000-0000-000000000012",
"type": "pivot",
"name": "chart",
"timerange": {"type": "relative", "range": 604800},
"query": null,
"streams": ["__SERVERS_STREAM_ID__"],
"stream_categories": [],
"series": [{"type": "count", "id": "Message count", "field": null}],
"sort": [{"type": "series", "field": "count()", "direction": "Descending"}],
"rollup": true,
"row_groups": [{"type": "values", "fields": ["event_type"], "limit": 15, "skip_empty_values": true}],
"column_groups": [],
"filter": null,
"filters": []
},
{
"id": "a3000000-0000-0000-0000-000000000013",
"type": "pivot",
"name": "chart",
"timerange": {"type": "relative", "range": 604800},
"query": null,
"streams": ["__SERVERS_STREAM_ID__"],
"stream_categories": [],
"series": [{"type": "count", "id": "Message count", "field": null}],
"sort": [{"type": "series", "field": "count()", "direction": "Descending"}],
"rollup": true,
"row_groups": [{"type": "values", "fields": ["source"], "limit": 15, "skip_empty_values": true}],
"column_groups": [],
"filter": null,
"filters": []
},
{
"id": "a3000000-0000-0000-0000-000000000014",
"type": "pivot",
"name": "chart",
"timerange": {"type": "relative", "range": 604800},
"query": {"type": "elasticsearch", "query_string": "event_type:radius_accounting"},
"streams": ["__SERVERS_STREAM_ID__"],
"stream_categories": [],
"series": [{"type": "count", "id": "Message count", "field": null}],
"sort": [{"type": "series", "field": "count()", "direction": "Descending"}],
"rollup": true,
"row_groups": [{"type": "values", "fields": ["acct_status_type"], "limit": 10, "skip_empty_values": true}],
"column_groups": [],
"filter": null,
"filters": []
}
]
}
],
"parameters": []
}