Управление папками, источниками данных и панелями с помощью Grafana Operator
В этом руководстве показано, как управлять источниками данных, папками и панелями с помощью Grafana Operator. Вы будете создавать эти ресурсы декларативно, используя пользовательские ресурсы Kubernetes.
Предварительные требования
Перед началом убедитесь, что у вас есть следующее:
- Существующий стек Grafana Cloud
- Grafana Operator, установленный в вашем кластере, как показано в разделе Grafana Operator Installation
Настройка Grafana Operator
Grafana Operator позволяет аутентифицироваться в экземпляре Grafana с помощью пользовательского ресурса (CR) Grafana.
Создание секрета с токеном API Grafana
Сохраните токен API Grafana в секрете со следующим содержимым в файле с именем grafana-token.yml:
apiVersion: v1
kind: Secret
metadata:
name: grafana-cloud-credentials
namespace: '<GRAFANA_OPERATOR_NAMESPACE>'
stringData:
GRAFANA_CLOUD_INSTANCE_TOKEN: '<GRAFANA_API_KEY>'
type: Opaque
Замените заполнители своими значениями:
<GRAFANA_API_KEY>: ключ API вашего экземпляра Grafana. Чтобы создать ключ API, обратитесь к Grafana API Key Documentation<GRAFANA_OPERATOR_NAMESPACE>: пространство имён, в котором развёрнутgrafana-operatorв вашем кластере Kubernetes
Настройка пользовательского ресурса Grafana
Настройте подключение к вашему экземпляру Grafana Cloud. Создайте файл с именем grafana-cloud.yml:
apiVersion: grafana.integreatly.org/v1beta1
kind: Grafana
metadata:
name: '<GRAFANA_CLOUD_STACK_NAME>'
namespace: '<GRAFANA_OPERATOR_NAMESPACE>'
labels:
dashboards: '<GRAFANA_CLOUD_STACK_NAME>'
spec:
external:
url: https://<GRAFANA_CLOUD_STACK_NAME>.grafana.net/
apiKey:
name: grafana-cloud-credentials
key: GRAFANA_CLOUD_INSTANCE_TOKEN
Замените заполнители своими значениями:
<GRAFANA_CLOUD_STACK_NAME>: имя вашего стека Grafana Cloud<GRAFANA_OPERATOR_NAMESPACE>: пространство имён, в котором развёрнутgrafana-operatorв вашем кластере Kubernetes
Добавление источника данных
Note
В этом примере используется источник данных Prometheus. Учтите, что требуемые аргументы зависят от выбранного вами источника данных.
Создание конфигурации источника данных
Создайте и сохраните новый YAML-файл datasource.yml с конфигурацией вашего источника данных:
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaDatasource
metadata:
name: '<DATA_SOURCE_NAME>'
namespace: '<GRAFANA_OPERATOR_NAMESPACE>'
spec:
instanceSelector:
matchLabels:
dashboards: '<GRAFANA_CLOUD_STACK_NAME>'
allowCrossNamespaceImport: true
datasource:
access: proxy
database: prometheus
jsonData:
timeInterval: 5s
tlsSkipVerify: true
name: '<DATA_SOURCE_NAME>'
type: prometheus
url: '<DATA_SOURCE_URL>'
Замените заполнители своими значениями:
<DATA_SOURCE_NAME>: имя источника данных, который будет добавлен в Grafana<DATA_SOURCE_URL>: URL вашего источника данных<GRAFANA_CLOUD_STACK_NAME>: имя вашего стека Grafana Cloud<GRAFANA_OPERATOR_NAMESPACE>: пространство имён, в котором развёрнутgrafana-operatorв вашем кластере Kubernetes
Добавление панели в папку
Используйте следующее определение YAML, чтобы создать простую панель в экземпляре Grafana внутри пользовательской папки. Если папка, указанная в поле spec.folder, не существует, оператор создаёт её перед размещением панели в этой папке.
Подготовьте конфигурацию панели. В файле dashboard.yml определите панель и назначьте её папке:
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaDashboard
metadata:
name: '<FOLDER_NAME>'
namespace: '<GRAFANA_OPERATOR_NAMESPACE>'
spec:
instanceSelector:
matchLabels:
dashboards: '<GRAFANA_CLOUD_STACK_NAME>'
folder: '<FOLDER_NAME>'
json: >
{
"title": "as-code dashboard",
"uid" : "ascode"
}
Замените заполнители своими значениями:
<FOLDER_NAME>: имя папки, в которой вы хотите создать панель<GRAFANA_CLOUD_STACK_NAME>: имя вашего стека Grafana Cloud<GRAFANA_OPERATOR_NAMESPACE>: пространство имён, в котором развёрнутgrafana-operatorв вашем кластере Kubernetes
Применение манифестов Kubernetes
В терминале выполните следующие команды из каталога, где находятся все приведённые выше определения YAML для Kubernetes.
Создайте пользовательские ресурсы Kubernetes для всех конфигураций:
kubectl apply -f grafana-token.yml grafana-cloud.yml datasource.yml dashboard.yml
Проверка конфигурации
После применения конфигураций убедитесь, что:
-
В Grafana отображается новый источник данных. На следующем изображении был создан источник данных с именем
InfluxDB.![Источник данных InfluxDB]()
-
В Grafana созданы новая панель и папка. На следующем изображении внутри папки
Demosбыла создана панель с именемInfluxDB Cloud Demos.![Панель InfluxDB]()
Дальнейшие шаги
Вы успешно создали источник данных, папку и панель с помощью Grafana Operator. Теперь ваши ресурсы Grafana управляются декларативно через пользовательские ресурсы Kubernetes.
Чтобы узнать больше об управлении Grafana:

