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.

Informações da origem

Repositório
alibaba/obz-cli
Última atividade na origem
29 de abril de 2026 às 07:18
Idioma detectado do SKILL.md
inglês
Estrelas
28
Forks
9

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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 ```
Ver no GitHub