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

Initial commit of Ocient integration (ECOINT-49) #2546

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open
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
9 changes: 9 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ coverage:
target: 75
flags:
- nextcloud
Ocient:
target: 75
flags:
- ocient
OctoPrint:
target: 75
flags:
Expand Down Expand Up @@ -487,6 +491,11 @@ flags:
paths:
- nvml/datadog_checks/nvml
- nvml/tests
ocient:
carryforward: true
paths:
- ocient/datadog_checks/ocient
- ocient/tests
octoprint:
carryforward: true
paths:
Expand Down
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@
/emqx/ @zhongwencool @zmstone @DataDog/ecosystems-review
/anecdote/ @atyulyutaev @DataDog/ecosystems-review
/celerdata/ @yandongxiao [email protected] @DataDog/ecosystems-review
/ocient/ @ocient-cliimatta @Xeograph/service-delivery-engineering

# Community Partners + Documentation
/1e/*metadata.csv [email protected] @DataDog/documentation @DataDog/ecosystems-review
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/test-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -714,6 +714,25 @@ jobs:
test-py3: ${{ inputs.test-py3 }}
setup-env-vars: "${{ inputs.setup-env-vars }}"
secrets: inherit
j1018635:
uses: DataDog/integrations-core/.github/workflows/test-target.yml@master
with:
job-name: Ocient
target: ocient
platform: linux
runner: '["ubuntu-22.04"]'
repo: "${{ inputs.repo }}"
python-version: "${{ inputs.python-version }}"
standard: ${{ inputs.standard }}
latest: ${{ inputs.latest }}
agent-image: "${{ inputs.agent-image }}"
agent-image-py2: "${{ inputs.agent-image-py2 }}"
agent-image-windows: "${{ inputs.agent-image-windows }}"
agent-image-windows-py2: "${{ inputs.agent-image-windows-py2 }}"
test-py2: ${{ inputs.test-py2 }}
test-py3: ${{ inputs.test-py3 }}
setup-env-vars: "${{ inputs.setup-env-vars }}"
secrets: inherit
je2bd36a:
uses: DataDog/integrations-core/.github/workflows/test-target.yml@master
with:
Expand Down
8 changes: 8 additions & 0 deletions ocient/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# CHANGELOG - Ocient

## 1.0.0 / 2024-11-22

***Added***:

* Initial Release

66 changes: 66 additions & 0 deletions ocient/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Agent Check: Ocient

## Overview

[Ocient][1] Hyperscale Data Warehouse is a data analytics software solutions company that enables all-the-time, compute-intensive analysis of large, complex datasets while optimizing for performance, cost, and energy efficiency.

With industry-standard interfaces like SQL and JDBC, Ocient makes it easy for organizations to interact with data within its platform.
The Ocient integration enables you to collect metrics related to query performance, disk usage, database tables, and more.

Copy link
Contributor

Choose a reason for hiding this comment

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

Could you add 1-2 sentences about what value this brings to our mutual customers?

## Setup

Follow these instructions to install and configure this check for an Agent running on a host.

### Installation

The Ocient check is included in the [Datadog Agent][2] package, so you don't need to install anything else on your Ocient server.

### Configuration

To configure this check for an Agent running on a host:

1. Edit the `ocient.d/conf.yaml` file, in the `conf.d/` folder at the root of your [Agent's configuration directory][3]. For all available configuration options, see the [sample ocient.d/conf.yaml][4].

```yaml
instances:

- use_openmetrics: true # Enables OpenMetrics V2

## @param openmetrics_endpoint - string - required
## The URL exposing metrics in the OpenMetrics format.
#
openmetrics_endpoint: http://localhost:<PORT>/metrics
```

2. [Restart the Agent][5].

### Validation

[Run the Agent's status subcommand][6] and look for `ocient` under the Checks section.

## Data Collected

### Metrics

See [metadata.csv][7] for a list of metrics provided by this integration.

### Service Checks

Ocient does not include any service checks.

### Events

Ocient does not include any events.

## Troubleshooting

Need help? Contact [Datadog support][8].

[1]: https://ocient.com/
[2]: https://app.datadoghq.com/account/settings/agent/latest
[3]: https://docs.datadoghq.com/agent/guide/agent-configuration-files/#agent-configuration-directory
[4]: https://github.com/DataDog/integrations-extras/blob/master/ocient/datadog_checks/ocient/data/conf.yaml.example
[5]: https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-and-restart-the-agent
[6]: https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information
[7]: https://github.com/DataDog/integrations-extras/blob/master/ocient/metadata.csv
[8]: https://docs.datadoghq.com/help/
14 changes: 14 additions & 0 deletions ocient/assets/configuration/spec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Ocient
files:
- name: ocient.yaml
options:
- template: init_config
options:
- template: init_config/openmetrics
- template: instances
options:
- template: instances/openmetrics
options:
overrides:
openmetrics_endpoint.value.example: http://localhost:9090/metrics/
openmetrics_endpoint.display_priority: 1
1 change: 1 addition & 0 deletions ocient/assets/dashboards/ocient_overview.json
Copy link
Contributor

Choose a reason for hiding this comment

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

Please include:

  1. Logo at the top of your dashboard
  2. Link to the Ocient documentation you refer to in the widget on the top right
  3. Update the dashboard description. You can do so by hovering over the title and clicking edit. Remove the word 'cloned' as well

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions ocient/assets/service_checks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
1 change: 1 addition & 0 deletions ocient/datadog_checks/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore
1 change: 1 addition & 0 deletions ocient/datadog_checks/ocient/__about__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__version__ = '1.0.0'
4 changes: 4 additions & 0 deletions ocient/datadog_checks/ocient/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .__about__ import __version__
from .check import OcientCheck

__all__ = ['__version__', 'OcientCheck']
21 changes: 21 additions & 0 deletions ocient/datadog_checks/ocient/check.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from datadog_checks.base import OpenMetricsBaseCheckV2

from .metrics import METRIC_MAP


class OcientCheck(OpenMetricsBaseCheckV2):
__NAMESPACE__ = "ocient"

DEFAULT_METRIC_LIMIT = 0

def __init__(self, name, init_config, instances):
super(OcientCheck, self).__init__(name, init_config, instances)
self.openmetrics_endpoint = self.instance.get("openmetrics_endpoint")

def get_default_config(self):
default_config = {
"openmetrics_endpoint": self.openmetrics_endpoint,
"metrics": METRIC_MAP,
}

return default_config
20 changes: 20 additions & 0 deletions ocient/datadog_checks/ocient/config_models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This file is autogenerated.
# To change this file you should edit assets/configuration/spec.yaml and then run the following commands:
# ddev -x validate config -s <INTEGRATION_NAME>
# ddev -x validate models -s <INTEGRATION_NAME>

from .instance import InstanceConfig
from .shared import SharedConfig


class ConfigMixin:
_config_model_instance: InstanceConfig
_config_model_shared: SharedConfig

@property
def config(self) -> InstanceConfig:
return self._config_model_instance

@property
def shared_config(self) -> SharedConfig:
return self._config_model_shared
128 changes: 128 additions & 0 deletions ocient/datadog_checks/ocient/config_models/defaults.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# This file is autogenerated.
# To change this file you should edit assets/configuration/spec.yaml and then run the following commands:
# ddev -x validate config -s <INTEGRATION_NAME>
# ddev -x validate models -s <INTEGRATION_NAME>


def shared_skip_proxy():
return False


def shared_timeout():
return 10


def instance_allow_redirects():
return True


def instance_auth_type():
return 'basic'


def instance_cache_metric_wildcards():
return True


def instance_cache_shared_labels():
return True


def instance_collect_counters_with_distributions():
return False


def instance_collect_histogram_buckets():
return True


def instance_disable_generic_tags():
return False


def instance_empty_default_hostname():
return False


def instance_enable_health_service_check():
return True


def instance_histogram_buckets_as_distributions():
return False


def instance_ignore_connection_errors():
return False


def instance_kerberos_auth():
return 'disabled'


def instance_kerberos_delegate():
return False


def instance_kerberos_force_initiate():
return False


def instance_log_requests():
return False


def instance_min_collection_interval():
return 15


def instance_non_cumulative_histogram_buckets():
return False


def instance_persist_connections():
return False


def instance_request_size():
return 16


def instance_skip_proxy():
return False


def instance_tag_by_endpoint():
return True


def instance_telemetry():
return False


def instance_timeout():
return 10


def instance_tls_ignore_warning():
return False


def instance_tls_use_host_header():
return False


def instance_tls_verify():
return True


def instance_use_latest_spec():
return False


def instance_use_legacy_auth_encoding():
return True


def instance_use_process_start_time():
return False
Loading
Loading