| name | obz-sls |
| description | Alibaba Cloud SLS (Simple Log Service) provider for obz. Supports metrics (PromQL), logs (SLS Query), and traces across project/store pairs. Requires AccessKey auth and provider-specific flags like --project, --logstore, --metricstore, and --trace-logstore. This skill should be used when the user mentions "SLS", "Alibaba Cloud", "obz -p sls", or needs to configure SLS provider instances.
|
obz-sls: Alibaba Cloud SLS Provider
Quick Reference
| Field | Value |
|---|
| Aliases | sls |
| Signals | Metric, Log, Trace |
| Metric query | PromQL |
| Log query | SLS Query |
| Auth | AccessKey (access-key-id + access-key-secret) |
| Endpoint format | https://<project>.<region>.log.aliyuncs.com |
Supported Commands
| Signal | Commands |
|---|
| Metric | query, list, labels, label-values, series |
| Log | search |
| Trace | search, get |
metric info is not supported by SLS.
Authentication
SLS always requires AccessKey credentials. Configure them in config.yaml
under providers.<name>.auth:
providers:
sls:
endpoint: http://cn-hangzhou.log.aliyuncs.com
project: my-project
logstore: my-logs
metricstore: my-metrics
auth:
access-key-id: ${env:SLS_AK}
access-key-secret: ${env:SLS_SK}
Then query with just -p:
obz metric query -p sls -q 'up'
Provider-Specific Flags
| Flag | Type | Required For | Description |
|---|
--project | String | All commands | SLS project name |
--metricstore | String | Metric commands | Metric store within project |
--logstore | String | Log commands | Log store within project |
--trace-logstore | String | Trace commands | Trace log store within project |
These flags are declared required: false at the CLI level (so other
providers don't error), but SLS validates them at runtime. Missing a
required flag produces a clear error message.
All flags can be pre-configured in config.yaml — when configured, the
CLI flag can be omitted.
Config File Setup
Pre-configuring SLS avoids repeating long flag lists:
providers:
sls-prod:
provider: sls
endpoint: https://my-proj.cn-hangzhou.log.aliyuncs.com
project: my-proj
metricstore: prom-store
logstore: nginx-access
trace-logstore: trace-store
auth:
access-key-id: ${env:SLS_AK}
access-key-secret: ${env:SLS_SK}
Then query with just a name:
obz metric query -p sls-prod -q 'up'
obz log search -p sls-prod -q 'error' --from now-1h
obz trace search -p sls-prod -q '*' --from now-1h
SLS Query Language (Logs)
SLS Query supports full-text search, field filters, and boolean logic.
Full-text Search
error
"connection refused"
Field Filters
status:500
host:web-01
request_method:POST
Boolean Operators
error AND status:500
error OR warn
error NOT "health check"
Wildcards
host:web-*
status:5??
Combining Patterns
error AND status:500 AND request_method:POST NOT uri:/health
Common Pitfalls
- Field names are case-sensitive and must match the indexed field exactly.
- Bare words search across all text fields. Use
field:value to target
a specific field.
- Wildcards work only in field filters, not in quoted phrases.
- SLS Query is NOT the same as LogsQL or Datadog Log Query. Each provider
has its own syntax.
PromQL (Metrics)
SLS metric stores support standard PromQL. MetricsQL extensions like
keep_metric_names are not available here.
rate(http_requests_total[5m])
sum by (job) (up)
histogram_quantile(0.99, rate(http_duration_seconds_bucket[5m]))
Examples
Metric query:
obz metric query -p sls-prod -q 'rate(http_requests_total[5m])' --from now-1h
Log search:
obz log search -p sls-prod -q 'error AND status:500' --from now-1h
Trace search:
obz trace search -p sls-prod -q '*' --from now-1h
Trace get by ID:
obz trace get -p sls-prod abc123def456
List metric names:
obz metric list -p sls-prod
List label values:
obz metric label-values -p sls-prod job