Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add config specs #7318

Merged
merged 2 commits into from
Aug 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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: |
The command or path to nodetool (for example, /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 (for example, `CASSANDRA_HOME`
and `DSCINSTALLDIR`), but sets them as variables only for the user doing the nodetool installation.
You should set those environment variables 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 listens 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: |
Password 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For the check to work, this user must have a read/write access so that the Datadog Cassandra Nodetool

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why removing this?

check can execute the `status` command
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
check can execute the `status` command

value:
type: string
- name: ssl
description: Whether to use the --ssl parameter with 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,60 +1,89 @@
## 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
## The command or path to nodetool (for example, /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 (for example, `CASSANDRA_HOME`
## and `DSCINSTALLDIR`), but sets them as variables only for the user doing the nodetool installation.
## You should set those environment variables 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.
hithwen marked this conversation as resolved.
Show resolved Hide resolved
##
## 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
## The port JMX is listening to for connections.
## @param port - integer - optional - default: 7199
## The port JMX listens to for connections.
#
# port: 7199

## @param username - string - optional
## 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
## 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
#
# username: <USERNAME>

## @param password - string - optional
## Username from the credentials needed to connect to the host. These are the credentials for the JMX server.
## Password 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
#
# password: <PASSWORD>

## @param ssl - boolean - optional - default: false
## Whether or not to use the --ssl parameter to nodetool to initiate a connection over SSL to the JMX server.
## Whether to use the --ssl parameter with nodetool to initiate a connection over SSL to the JMX server.
#
# 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.
hithwen marked this conversation as resolved.
Show resolved Hide resolved
##
## 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:
hithwen marked this conversation as resolved.
Show resolved Hide resolved
## https://docs.datadoghq.com/developers/write_agent_check/#collection-interval
#
# min_collection_interval: 15

## @param empty_default_hostname - boolean - optional - default: false
hithwen marked this conversation as resolved.
Show resolved Hide resolved
## This forces the check to send metrics with no hostname.
hithwen marked this conversation as resolved.
Show resolved Hide resolved
##
## 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