Skip to content

dash0hq/dash0-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dash0 CLI

A command-line interface for interacting with Dash0 services.

Installation

From Source

Requires Go 1.22 or higher.

# Clone the repository
git clone https://github.com/dash0hq/dash0-cli.git
cd dash0-cli

# Build and install
make install

Usage

Configuration

Configure API access using profiles.

$ dash0 config profiles create dev --api-url https://api.eu-west-1.aws.dash0.com --auth-token auth_xxx
Profile "dev" added and set as active

$ dash0 config profiles create prod --api-url https://api.eu-west-1.aws.dash0.com --auth-token auth_yyy
Profile "prod" added successfully

$ dash0 config profiles list
  NAME  API URL                                  AUTH TOKEN
* dev   https://api.eu-west-1.aws.dash0-dev.com  ...ULSzVkM
  prod  https://api.eu-west-1.aws.dash0.com      ...uth_yyy

$ dash0 config profiles select prod
Profile 'prod' is now active

$ dash0 config show
Profile:    prod
API URL:    https://api.eu-west-1.aws.dash0.com
Auth Token: ...uth_yyy

The last seven digits of the auth token are displayed, matching the format shown in Dash0 as the dash0.auth.token attribute.

The API URL and the authentication tokens can be overridden using the DASH0_API_URL and DASH0_AUTH_TOKEN environment variables:

$ DASH0_API_URL='http://test' dash0 config show
Profile:    dev
API URL:    http://test    (from DASH0_API_URL environment variable)
Auth Token: ...ULSzVkM

$ DASH0_AUTH_TOKEN='my_auth_test_token' dash0 config show
Profile:    dev
API URL:    https://api.eu-west-1.aws.dash0-dev.com
Auth Token: ...t_token    (from DASH0_AUTH_TOKEN environment variable)

Applying Resources

Apply resource definitions from a file or stdin. The input may contain multiple YAML documents separated by ---:

$ dash0 apply -f resources.yaml
Dashboard "Production Overview" created
CheckRule "High Error Rate" updated
View "Error Logs" created

$ cat resources.yaml | dash0 apply -f -
Dashboard "Production Overview" created
...

$ dash0 apply -f dashboard.yaml --dry-run
Dry run: 1 document(s) validated successfully
  1. Dashboard

Supported resource types: Dashboard, CheckRule (both the plain Prometheus YAML and the PrometheusRule CRD), PrometheusRule, SyntheticCheck, View

Dashboards

$ dash0 dashboards list
NAME                                      ID
Production Overview                       a1b2c3d4-5678-90ab-cdef-1234567890ab
...

$ dash0 dashboards get a1b2c3d4-5678-90ab-cdef-1234567890ab
Kind: Dashboard
Name: Production Overview
Dataset: default
Origin: gitops/prod
Created: 2026-01-15 10:30:00
Updated: 2026-01-20 14:45:00

$ dash0 dashboards get a1b2c3d4-5678-90ab-cdef-1234567890ab -o yaml
kind: Dashboard
metadata:
  name: a1b2c3d4-5678-90ab-cdef-1234567890ab
  ...
spec:
  display:
    name: Production Overview
  ...

$ dash0 dashboards create -f dashboard.yaml
Dashboard "My Dashboard" created successfully

$ dash0 dashboards update a1b2c3d4-5678-90ab-cdef-1234567890ab -f dashboard.yaml
Dashboard "My Dashboard" updated successfully

$ dash0 dashboards delete a1b2c3d4-5678-90ab-cdef-1234567890ab
Are you sure you want to delete dashboard "a1b2c3d4-..."? [y/N]: y
Dashboard "a1b2c3d4-..." deleted successfully

Check Rules

$ dash0 check-rules list
NAME                                      ID
High Error Rate Alert                     a1b2c3d4-5678-90ab-cdef-1234567890ab
...

$ dash0 check-rules get a1b2c3d4-5678-90ab-cdef-1234567890ab
Name: High Error Rate Alert
Dataset: default
Expression: sum(rate(errors[5m])) > 0.1
Enabled: true
Description: Alert when error rate exceeds threshold

$ dash0 check-rules create -f rule.yaml
Check rule "High Error Rate Alert" created successfully

$ dash0 check-rules update a1b2c3d4-5678-90ab-cdef-1234567890ab -f rule.yaml
Check rule "High Error Rate Alert" updated successfully

$ dash0 check-rules delete a1b2c3d4-5678-90ab-cdef-1234567890ab --force
Check rule "a1b2c3d4-..." deleted successfully

You can apply PrometheusRule CRD files directly:

$ dash0 apply -f prometheus-rules.yaml
PrometheusRule "High Error Rate Alert" applied successfully

Synthetic Checks

$ dash0 synthetic-checks list
NAME                                      ID
API Health Check                          a1b2c3d4-5678-90ab-cdef-1234567890ab
...

$ dash0 synthetic-checks get a1b2c3d4-5678-90ab-cdef-1234567890ab
Kind: Dash0SyntheticCheck
Name: API Health Check
Dataset: default
Origin:
Description: Checks API endpoint availability

$ dash0 synthetic-checks create -f check.yaml
Synthetic check "API Health Check" created successfully

$ dash0 synthetic-checks update a1b2c3d4-5678-90ab-cdef-1234567890ab -f check.yaml
Synthetic check "API Health Check" updated successfully

$ dash0 synthetic-checks delete a1b2c3d4-5678-90ab-cdef-1234567890ab
Are you sure you want to delete synthetic check "a1b2c3d4-..."? [y/N]: y
Synthetic check "a1b2c3d4-..." deleted successfully

Views

$ dash0 views list
NAME                                      ID
Error Logs View                           a1b2c3d4-5678-90ab-cdef-1234567890ab
...

$ dash0 views get a1b2c3d4-5678-90ab-cdef-1234567890ab
Kind: Dash0View
Name: Error Logs View
Dataset: default
Origin:

$ dash0 views create -f view.yaml
View "Error Logs View" created successfully

$ dash0 views update a1b2c3d4-5678-90ab-cdef-1234567890ab -f view.yaml
View "Error Logs View" updated successfully

$ dash0 views delete a1b2c3d4-5678-90ab-cdef-1234567890ab --force
View "a1b2c3d4-..." deleted successfully

Common Flags

Flag Short Description
--api-url Override API URL from profile
--auth-token Override auth token from profile
--dataset -d Specify dataset to operate on
--file -f Input file path (use - for stdin)
--output -o Output format: table, wide, json, yaml

Output Formats

The list commands support four output formats:

  • table (default): Compact view with essential columns (name and ID)
  • wide: Similar to table, with additional columns (dataset and origin)
  • json: Full resource data in JSON format
  • yaml: Full resource data in YAML format
$ dash0 dashboards list
NAME                                      ID
Production Overview                       a1b2c3d4-5678-90ab-cdef-1234567890ab

$ dash0 dashboards list -o wide
NAME                                      ID                                    DATASET          ORIGIN
Production Overview                       a1b2c3d4-5678-90ab-cdef-1234567890ab  default          gitops/prod

The wide format includes the DATASET column even though dash0 operates commands on a single dataset at a time. This makes it easier to merge and compare outputs from commands run against different datasets.

Shell Completions

Enable tab completion for your shell:

Bash (requires bash-completion):

# Current session
source <(dash0 completion bash)

# Permanent (Linux)
dash0 completion bash > /etc/bash_completion.d/dash0

# Permanent (macOS with Homebrew)
dash0 completion bash > $(brew --prefix)/etc/bash_completion.d/dash0

Zsh:

# Current session
source <(dash0 completion zsh)

# Permanent (Linux)
dash0 completion zsh > "${fpath[1]}/_dash0"

# Permanent (macOS with Homebrew)
dash0 completion zsh > $(brew --prefix)/share/zsh/site-functions/_dash0

Fish:

# Current session
dash0 completion fish | source

# Permanent
dash0 completion fish > ~/.config/fish/completions/dash0.fish

Contributing

See CONTRIBUTING.md for development instructions.

About

Command line utility to interact with Dash0

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages