Skip to main content

obz-vl

VictoriaLogs provider for obz. Supports log search using LogsQL, a purpose-built query language with _msg, _time, and _stream filters plus pipes for transformation. This skill should be used when the user mentions "VictoriaLogs", "LogsQL", "obz log search -p vl", or needs to search logs from a VL backend.

Quellinformationen

Repository
alibaba/obz-cli
Letzte Quellaktivität
29. April 2026 um 07:18
Erkannte Sprache von SKILL.md
Englisch
Sterne
28
Forks
9

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
obz-vl
description
VictoriaLogs provider for obz. Supports log search using LogsQL, a purpose-built query language with _msg, _time, and _stream filters plus pipes for transformation. This skill should be used when the user mentions "VictoriaLogs", "LogsQL", "obz log search -p vl", or needs to search logs from a VL backend.
# obz-vl: VictoriaLogs Provider ## Quick Reference | Field | Value | |------------------|----------------------------------------------------| | Aliases | `vl`, `victorialogs` | | Signal | Log | | Query language | LogsQL | | Auth | Bearer token, Basic auth, or none | | Provider flags | `--account-id`, `--project-id` | | Supported cmds | log search, field-names, field-values, hits, stats | ## Supported Commands ### Core log commands ``` obz log search # Search log entries using LogsQL ``` ### Extension commands ``` obz log field-names # List available field names (optional --query filter) obz log field-values # List values for a field (requires --field) obz log hits # Show log volume over time (optional --step) obz log stats # Run stats aggregation (requires --query) ``` ## Authentication Configure auth in `config.yaml` under `providers.<name>.auth`. Supports bearer token, basic auth, or no auth. ```yaml # config.yaml providers: vl: endpoint: http://localhost:9428 auth: token: ${env:VL_TOKEN} ``` Then query with just `-p`: ```bash obz log search -p vl -q 'error' --from now-1h ``` ## Provider-Specific Flags | Flag | Type | Required | Description | |------------------|--------|----------|------------------------------------| | `--account-id` | String | No | Multi-tenant AccountID | | `--project-id` | String | No | Multi-tenant ProjectID | These flags are only needed when querying a multi-tenant VictoriaLogs cluster. ```bash obz log search -p vl --account-id 12 --project-id 34 \ -q 'error' --from now-1h ``` ## Config File Setup ```yaml # ~/.config/obz/config.yaml providers: prod-vl: provider: vl endpoint: https://vl.prod.example.com account-id: "12" project-id: "34" auth: token: ${env:VL_TOKEN} ``` Then: ```bash obz log search -p prod-vl -q 'error' --from now-1h ``` ## LogsQL Guide LogsQL queries are built from filters combined with AND/OR/NOT operators and optional pipes for post-processing. ### Built-in Fields - `_msg` contains the log message body - `_time` holds the timestamp - `_stream` identifies the log stream (typically `{key="value"}` pairs) ### Filter Types **Word filter** (matches exact word in `_msg`): ``` error ``` **Phrase filter** (matches exact phrase): ``` "connection refused" ``` **Prefix filter** (matches word prefix): ``` err* ``` **Regex filter**: ``` _msg:re("error|warn") ``` **Field filter** (match on a specific field): ``` level:error host:web-01 ``` **Stream filter** (filter by log stream labels): ``` _stream:{job="api", instance="web-01"} ``` **Time filter** (usually set via `--from`/`--to` flags instead): ``` _time:[2024-01-01, 2024-01-02) ``` ### Combining Filters **AND** (implicit when space-separated): ``` error _stream:{job="api"} ``` **Explicit AND/OR/NOT**: ``` (error OR warn) AND _stream:{job="api"} NOT "health check" ``` ### Pipes Pipes transform results after filtering: ``` error | stats by (host) count() as errors error | sort by (_time) desc | limit 50 error | fields _time, _msg, host error | uniq by (host) ``` ### Common Pitfalls - Bare words match against `_msg` by default. To match a specific field, use `field:value` syntax. - Stream filters use curly braces: `_stream:{job="api"}`. Don't forget the `_stream:` prefix. - Regex filters require the `re()` wrapper: `_msg:re("pattern")`. - Pipes use `|` as separator. The filter portion comes first, pipes after. ## Examples **Simple word search**: ```bash obz log search -p vl -q 'error' --from now-1h ``` **Stream-scoped search**: ```bash obz log search -p vl -q 'error AND _stream:{job="api"}' --from now-1h ``` **Regex filter on message**: ```bash obz log search -p vl -q '_msg:re("timeout|refused")' --from now-6h ``` **Field filter with pipe**: ```bash obz log search -p vl \ -q 'level:error | stats by (host) count() as errors' --from now-1d ``` **Multi-tenant query**: ```bash obz log search -p vl --account-id 12 --project-id 34 \ -q '"connection reset"' --from now-30m ``` **List field names**: ```bash obz log field-names -p vl --from now-1h ``` **List values for a field**: ```bash obz log field-values -p vl --field level --from now-1h ``` **Log volume histogram**: ```bash obz log hits -p vl -q 'error' --from now-1h --step 5m ``` **Stats aggregation**: ```bash obz log stats -p vl -q 'error | stats by (service) count() as errors' --from now-1h ```
Auf GitHub ansehen