Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cdk8s-team/cdk8s-grafana
Grafana constructs for cdk8s
https://github.com/cdk8s-team/cdk8s-grafana
cdk grafana kubernetes
Last synced: 2 months ago
JSON representation
Grafana constructs for cdk8s
- Host: GitHub
- URL: https://github.com/cdk8s-team/cdk8s-grafana
- Owner: cdk8s-team
- License: apache-2.0
- Created: 2021-07-14T22:14:16.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-19T15:08:44.000Z (2 months ago)
- Last Synced: 2024-10-21T06:24:08.965Z (2 months ago)
- Topics: cdk, grafana, kubernetes
- Language: TypeScript
- Homepage:
- Size: 4.5 MB
- Stars: 11
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
## cdk8s-grafana
[![View on Construct Hub](https://constructs.dev/badge?package=cdk8s-grafana)](https://constructs.dev/packages/cdk8s-grafana)
cdk8s-grafana is a library that lets you easily define a Grafana service for
your kubernetes cluster along with associated dashboards and datasources, using
a high level API.### Usage
To apply the resources generated by this construct, the Grafana operator must be
installed on your cluster. See
for full installation
instructions.The following will define a Grafana cluster connected to a Prometheus
datasource:```typescript
import { Grafana } from 'cdk8s-grafana';// inside your chart:
const grafana = new Grafana(this, 'my-grafana', {
defaultDataSource: {
name: 'Prometheus',
type: 'prometheus',
access: 'proxy',
url: 'http://prometheus-service:9090',
}
});
```Basic aspects of a dashboard can be customized:
```typescript
const github = grafana.addDatasource('github', ...);
const dashboard = grafana.addDashboard('my-dashboard', {
title: 'My Dashboard',
refreshRate: Duration.seconds(10),
timeRange: Duration.hours(6), // show metrics from now-6h to now
plugins: [
{
name: 'grafana-piechart-panel',
version: '1.3.6',
}
],
});
```Note: the kubernetes grafana operator only supports one Grafana instance per
namespace (see https://github.com/grafana-operator/grafana-operator/issues/174).
This may require specifying namespaces explicitly, e.g.:```typescript
const devGrafana = new Grafana(this, 'my-grafana', {
namespace: 'dev',
});
const prodGrafana = new Grafana(this, 'my-grafana', {
namespace: 'prod',
});
```The grafana operator must be installed in each namespace for the resources in
that namespace to be recognized.## Security
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more
information.## License
This project is licensed under the Apache-2.0 License.