grafana_datasource – Manage Grafana datasources

From Get docs
Ansible/docs/2.7/modules/grafana datasource module


grafana_datasource – Manage Grafana datasources

New in version 2.5.


Synopsis

  • Create/update/delete Grafana datasources via API.

Parameters

Parameter Choices/Defaults Comments

access

-

  • direct
  • proxy

The access mode for this datasource.

basic_auth_password

-

The datasource basic auth password, when basic auth is yes.

basic_auth_user

-

The datasource basic auth user.

Setting this option with basic_auth_password will enable basic auth.

database

-

Name of the database for the datasource.

This options is required when the ds_type is influxdb, elasticsearch (index name), mysql or postgres.

ds_type

- / required

  • graphite
  • prometheus
  • elasticsearch
  • influxdb
  • opentsdb
  • mysql
  • postgres
  • alexanderzobnin-zabbix-datasource

The type of the datasource.

es_version

-

  • 2
  • 5

  • 56

Elasticsearch version (for ds_type = elasticsearch only)

Version 56 is for elasticsearch 5.6+ where tou can specify the max_concurrent_shard_requests option.

grafana_api_key

-

The Grafana API key.

If set, grafana_user and grafana_password will be ignored.

grafana_password

-

Default:

"admin"

The Grafana API password.

grafana_url

- / required

The Grafana URL.

grafana_user

-

Default:

"admin"

The Grafana API user.

interval

-

  • Hourly
  • Daily
  • Weekly
  • Monthly
  • Yearly

For elasticsearch ds_type, this is the index pattern used.

is_default

boolean

  • no

  • yes

Make this datasource the default one.

max_concurrent_shard_requests

-

Default:

256

Starting with elasticsearch 5.6, you can specify the max concurrent shard per requests.

name

- / required

The name of the datasource.

org_id

-

Default:

1

Grafana Organisation ID in which the datasource should be created.

Not used when grafana_api_key is set, because the grafana_api_key only belong to one organisation.

password

-

The datasource password

sslmode

-

  • disable
  • require
  • verify-ca
  • verify-full

SSL mode for postgres datasoure type.

state

-

  • absent
  • present

Status of the datasource

time_field

-

Default:

"timestamp"

Name of the time field in elasticsearch ds.

For example @timestamp

time_interval

-

Minimum group by interval for influxdb or elasticsearch datasources.

for example >10s

tls_ca_cert

-

The TLS CA certificate for self signed certificates.

Only used when tls_client_cert and tls_client_key are set.

tls_client_cert

-

The client TLS certificate.

If tls_client_cert and tls_client_key are set, this will enable TLS authentication.

Starts with ----- BEGIN CERTIFICATE -----

tls_client_key

-

The client TLS private key

Starts with ----- BEGIN RSA PRIVATE KEY -----

tls_skip_verify

boolean

added in 2.6

  • no

  • yes

Skip the TLS datasource certificate verification.

trends

boolean

added in 2.6

  • no
  • yes

Use trends or not for zabbix datasource type

tsdb_resolution

-

  • millisecond
  • second

The opentsdb time resolution.

tsdb_version

-

  • 1

  • 2
  • 3

The opentsdb version.

Use 1 for <=2.1, 2 for ==2.2, 3 for ==2.3.

url

- / required

The URL of the datasource.

user

-

The datasource login user for influxdb datasources.

validate_certs

boolean

  • no
  • yes

Whether to validate the Grafana certificate.

with_credentials

boolean

  • no

  • yes

Whether credentials such as cookies or auth headers should be sent with cross-site requests.



Examples

---
- name: Create elasticsearch datasource
  grafana_datasource:
    name: "datasource-elastic"
    grafana_url: "https://grafana.company.com"
    grafana_user: "admin"
    grafana_password: "xxxxxx"
    org_id: "1"
    ds_type: "elasticisearch"
    url: "https://elastic.company.com:9200"
    database: "[logstash_]YYYY.MM.DD"
    basic_auth_user: "grafana"
    basic_auth_password: "******"
    time_field: "@timestamp"
    time_interval: "1m"
    interval: "Daily"
    es_version: 56
    max_concurrent_shard_requests: 42
    tls_ca_cert: "/etc/ssl/certs/ca.pem"

- name: Create influxdb datasource
  grafana_datasource:
    name: "datasource-influxdb"
    grafana_url: "https://grafana.company.com"
    grafana_user: "admin"
    grafana_password: "xxxxxx"
    org_id: "1"
    ds_type: "influxdb"
    url: "https://influx.company.com:8086"
    database: "telegraf"
    time_interval: ">10s"
    tls_ca_cert: "/etc/ssl/certs/ca.pem"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description

after

dictionary

changed

datasource updated by module


Sample:

{'access': 'proxy', 'basicAuth': False, 'database': 'test_*', 'id': 1035, 'isDefault': False, 'jsonData': {'esVersion': 5, 'timeField': '@timestamp', 'timeInterval': '10s'}, 'name': 'grafana_datasource_test', 'orgId': 1, 'type': 'elasticsearch', 'url': 'http://elastic.company.com:9200', 'user': , 'password': , 'withCredentials': False}

before

dictionary

changed

datasource returned by grafana api


Sample:

{'access': 'proxy', 'basicAuth': False, 'database': 'test_*', 'id': 1035, 'isDefault': False, 'jsonData': {'esVersion': 5, 'timeField': '@timestamp', 'timeInterval': '1m'}, 'name': 'grafana_datasource_test', 'orgId': 1, 'type': 'elasticsearch', 'url': 'http://elastic.company.com:9200', 'user': , 'password': , 'withCredentials': False}

id

integer

success

Id of the datasource


Sample:

42

name

string

success

name of the datasource created.


Sample:

test-ds




Status

Authors

  • Thierry Sallé (@seuf)

Hint

If you notice any issues in this documentation you can edit this document to improve it.


© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/grafana_datasource_module.html