The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/pkg/services/apiserver
Arati R 61f3d08c3f
Storage: Add List support for pagination (#87093)
1 year ago
..
aggregator K8s: replace a noop certKey content func with actual if available (#84524) 1 year ago
auth K8s: Pass ID token in X-Extra-id-token header (#82893) 1 year ago
endpoints/request K8s: Add apimachinery and apiserver packages (#83190) 1 year ago
options K8s: remove standalone authenticator in favor of providing one through the factory (#85901) 1 year ago
standalone Plugins: Pass cancellable context during API server creation (#86545) 1 year ago
storage/entity Storage: Add List support for pagination (#87093) 1 year ago
utils Storage: Add support for listing resource history (#84331) 1 year ago
README.md K8s: Add Aggregation to Backend Service (#81591) 1 year ago
config.go k8s: ensure unified storage address is populated from config ini (#84373) 1 year ago
service.go Storage Api: Adds traces (#85391) 1 year ago
wireset.go K8s: Add apimachinery and apiserver packages (#83190) 1 year ago

README.md

Grafana Kubernetes compatible API Server

Basic Setup

[feature_toggles]
kubernetesPlaylists = true

Start Grafana:

make run

Enable dual write to etcd

Start etcd:

make devenv sources=etcd

Set storage type and etcd server address in custom.ini:

[grafana-apiserver]
storage_type = etcd
etcd_servers = 127.0.0.1:2379

Enable dual write to JSON files:

Set storage type:

[grafana-apiserver]
storage_type = file

Objects will be written to disk under the {data.path}/grafana-apiserver/ directory.

For example:

data/grafana-apiserver
├── grafana.kubeconfig
└── playlist.grafana.app
    └── playlists
        └── default
            └── hi.json

Enable aggregation

See aggregator/README.md for more information.

kubectl access

For kubectl to work, grafana needs to run over https. To simplify development, you can use:

app_mode = development

[feature_toggles]
grafanaAPIServerEnsureKubectlAccess = true 
kubernetesPlaylists = true

This will create a development kubeconfig and start a parallel ssl listener. It can be registered by navigating to the root grafana folder, then running:

export KUBECONFIG=$PWD/data/grafana-apiserver/grafana.kubeconfig
kubectl api-resources

Grafana API Access

The Kubernetes compatible API can be accessed using existing Grafana AuthN at: http://localhost:3000/apis.

The equivalent openapi docs can be seen in http://localhost:3000/swagger, select the relevant API from the dropdown in the upper right.