Skip to content

Commit

Permalink
Add config specs
Browse files Browse the repository at this point in the history
  • Loading branch information
hithwen committed Aug 7, 2020
1 parent 7a1352e commit 1571551
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 20 deletions.
61 changes: 61 additions & 0 deletions cassandra_nodetool/assets/configuration/spec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Cassandra Nodetool
files:
- name: cassandra_nodetool.yaml
options:
- template: init_config
options:
- name: nodetool
description: |
command or path to nodetool (e.g. /usr/bin/nodetool or docker exec container nodetool)
can be overwritten on an instance
Note: Agent v6.11+ on Windows runs as an unprivileged user (`ddagentuser`). That user needs to be granted
access to the nodetool installation directory for the check to work.
The nodetool installation also sets some environment variables (e.g. `CASSANDRA_HOME` and `DSCINSTALLDIR`),
but sets them as variables only for the user doing the nodetool installation. Those environment variables should
be set as system-wide variables.
required: true
value:
type: string
example: nodetool
- template: init_config/default
- template: instances
options:
- name: keyspaces
description: |
The list of keyspaces to monitor.
An empty list results in no metrics being sent.
required: true
value:
type: array
items:
type: string
- name: host
description: Host that the Datadog Cassandra Nodetool check connects to.
value:
type: string
example: localhost
- name: port
description: The port JMX is listening to for connections.
value:
type: integer
example: 7199
- name: username
description: |
Username from the credentials needed to connect to the host. These are the credentials for the JMX server.
For the check to work, this user must have a read/write access so that the Datadog Cassandra nodetool
check can execute the `status` command
value:
type: string
- name: password
description: |
Username from the credentials needed to connect to the host. These are the credentials for the JMX server.
For the check to work, this user must have a read/write access so that the Datadog Cassandra Nodetool
check can execute the `status` command
value:
type: string
- name: ssl
description: Whether or not to use the --ssl parameter to nodetool to initiate a connection over SSL to the JMX server.
value:
type: boolean
example: false
- template: instances/default
Original file line number Diff line number Diff line change
@@ -1,32 +1,41 @@
## All options defined here are available to all instances.
#
init_config:

## @param nodetool - string - required
## command or path to nodetool (e.g. /usr/bin/nodetool or docker exec container nodetool)
## can be overwritten on an instance
## Note: Agent v6.11+ on Windows runs as an unprivileged user (`ddagentuser`). That user needs to be granted
## access to the nodetool installation directory for the check to work.
## The nodetool installation also sets some environment variables (e.g. `CASSANDRA_HOME` and `DSCINSTALLDIR`),
## but sets them as variables only for the user doing the nodetool installation. Those environment variables should
## be set as system-wide variables.
#
# nodetool: /usr/bin/nodetool
## @param nodetool - string - required
## command or path to nodetool (e.g. /usr/bin/nodetool or docker exec container nodetool)
## can be overwritten on an instance
## Note: Agent v6.11+ on Windows runs as an unprivileged user (`ddagentuser`). That user needs to be granted
## access to the nodetool installation directory for the check to work.
## The nodetool installation also sets some environment variables (e.g. `CASSANDRA_HOME` and `DSCINSTALLDIR`),
## but sets them as variables only for the user doing the nodetool installation. Those environment variables should
## be set as system-wide variables.
#
nodetool: nodetool

## @param service - string - optional
## Attach the tag `service:<SERVICE>` to every metric, event, and service check emitted by this integration.
##
## Additionally, this sets the default `service` for every log source.
#
# service: <SERVICE>

## Every instance is scheduled independent of the others.
#
instances:

## @param keyspaces - list of string - required
## @param keyspaces - list of strings - required
## The list of keyspaces to monitor.
## An empty list results in no metrics being sent.
#
- keyspaces:
- <KEYSPACE_1>
- <KEYSPACE_2>
- keyspaces: []

## @param host - string - optional
## @param host - string - optional - default: localhost
## Host that the Datadog Cassandra Nodetool check connects to.
#
# host: localhost

## @param port - integer - optional
## @param port - integer - optional - default: 7199
## The port JMX is listening to for connections.
#
# port: 7199
Expand All @@ -50,11 +59,31 @@ instances:
#
# ssl: false

## @param tags - list of key:value element - optional
## List of tags to attach to every metric, event and service check emitted by this integration.
## @param tags - list of strings - optional
## A list of tags to attach to every metric and service check emitted by this instance.
##
## Learn more about tagging: https://docs.datadoghq.com/tagging/
## Learn more about tagging at https://docs.datadoghq.com/tagging
#
# tags:
# - <KEY_1>:<VALUE_1>
# - <KEY_2>:<VALUE_2>

## @param service - string - optional
## Attach the tag `service:<SERVICE>` to every metric, event, and service check emitted by this integration.
##
## Overrides any `service` defined in the `init_config` section.
#
# service: <SERVICE>

## @param min_collection_interval - number - optional - default: 15
## This changes the collection interval of the check. For more information, see:
## https://docs.datadoghq.com/developers/write_agent_check/#collection-interval
#
# min_collection_interval: 15

## @param empty_default_hostname - boolean - optional - default: false
## This forces the check to send metrics with no hostname.
##
## This is useful for cluster-level checks.
#
# empty_default_hostname: false
3 changes: 3 additions & 0 deletions cassandra_nodetool/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"type": "check",
"integration_id": "cassandra-nodetool",
"assets": {
"configuration": {
"spec": "assets/configuration/spec.yaml"
},
"monitors": {},
"dashboards": {},
"service_checks": "assets/service_checks.json",
Expand Down
4 changes: 3 additions & 1 deletion cassandra_nodetool/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def get_dependencies():
return f.readlines()


CHECKS_BASE_REQ = 'datadog_checks_base'
CHECKS_BASE_REQ = 'datadog_checks_base>=11.0.0'


setup(
Expand All @@ -54,6 +54,8 @@ def get_dependencies():
'License :: OSI Approved :: BSD License',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
],
# The package we're going to ship
packages=['datadog_checks.cassandra_nodetool'],
Expand Down

0 comments on commit 1571551

Please sign in to comment.