From d72784193b4e99bdb4fa2a4867427fa996e53a2b Mon Sep 17 00:00:00 2001 From: "florian.veaux" Date: Thu, 15 Aug 2019 14:37:56 -0400 Subject: [PATCH 01/19] Initial POC --- mapr/CHANGELOG.md | 1 + mapr/MANIFEST.in | 10 ++ mapr/README.md | 49 ++++++++ mapr/assets/logos/README.md | 19 ++++ mapr/assets/service_checks.json | 1 + mapr/datadog_checks/__init__.py | 4 + mapr/datadog_checks/mapr/__about__.py | 4 + mapr/datadog_checks/mapr/__init__.py | 7 ++ .../mapr/data/conf.yaml.example | 4 + mapr/datadog_checks/mapr/mapr.py | 107 ++++++++++++++++++ mapr/manifest.json | 29 +++++ mapr/metadata.csv | 1 + mapr/requirements-dev.txt | 1 + mapr/requirements.in | 0 mapr/setup.py | 54 +++++++++ mapr/tests/__init__.py | 3 + mapr/tests/conftest.py | 14 +++ mapr/tests/test_mapr.py | 11 ++ mapr/tox.ini | 20 ++++ 19 files changed, 339 insertions(+) create mode 100644 mapr/CHANGELOG.md create mode 100644 mapr/MANIFEST.in create mode 100644 mapr/README.md create mode 100644 mapr/assets/logos/README.md create mode 100644 mapr/assets/service_checks.json create mode 100644 mapr/datadog_checks/__init__.py create mode 100644 mapr/datadog_checks/mapr/__about__.py create mode 100644 mapr/datadog_checks/mapr/__init__.py create mode 100644 mapr/datadog_checks/mapr/data/conf.yaml.example create mode 100644 mapr/datadog_checks/mapr/mapr.py create mode 100644 mapr/manifest.json create mode 100644 mapr/metadata.csv create mode 100644 mapr/requirements-dev.txt create mode 100644 mapr/requirements.in create mode 100644 mapr/setup.py create mode 100644 mapr/tests/__init__.py create mode 100644 mapr/tests/conftest.py create mode 100644 mapr/tests/test_mapr.py create mode 100644 mapr/tox.ini diff --git a/mapr/CHANGELOG.md b/mapr/CHANGELOG.md new file mode 100644 index 0000000000000..5a1436089d3a9 --- /dev/null +++ b/mapr/CHANGELOG.md @@ -0,0 +1 @@ +# CHANGELOG - mapr diff --git a/mapr/MANIFEST.in b/mapr/MANIFEST.in new file mode 100644 index 0000000000000..6fa1c2388a4eb --- /dev/null +++ b/mapr/MANIFEST.in @@ -0,0 +1,10 @@ +graft datadog_checks +graft tests + +include MANIFEST.in +include README.md +include requirements.in +include requirements-dev.txt +include manifest.json + +global-exclude *.py[cod] __pycache__ diff --git a/mapr/README.md b/mapr/README.md new file mode 100644 index 0000000000000..51804eee82997 --- /dev/null +++ b/mapr/README.md @@ -0,0 +1,49 @@ +# Agent Check: mapr + +## Overview + +This check monitors [mapr][1] through the Datadog Agent. + +## Setup + +Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the [Autodiscovery Integration Templates][2] for guidance on applying these instructions. + +### Installation + +The mapr check is included in the [Datadog Agent][2] package. +No additional installation is needed on your server. + +### Configuration + +1. Edit the `mapr.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to start collecting your mapr performance data. See the [sample mapr.d/conf.yaml][3] for all available configuration options. + +2. [Restart the Agent][4]. + +### Validation + +[Run the Agent's status subcommand][5] and look for `mapr` under the Checks section. + +## Data Collected + +### Metrics + +mapr does not include any metrics. + +### Service Checks + +mapr does not include any service checks. + +### Events + +mapr does not include any events. + +## Troubleshooting + +Need help? Contact [Datadog support][6]. + +[1]: **LINK_TO_INTEGRATION_SITE** +[2]: https://docs.datadoghq.com/agent/autodiscovery/integrations +[3]: https://github.com/DataDog/integrations-core/blob/master/mapr/datadog_checks/mapr/data/conf.yaml.example +[4]: https://docs.datadoghq.com/agent/guide/agent-commands/?tab=agentv6#start-stop-and-restart-the-agent +[5]: https://docs.datadoghq.com/agent/guide/agent-commands/?tab=agentv6#agent-status-and-information +[6]: https://docs.datadoghq.com/help diff --git a/mapr/assets/logos/README.md b/mapr/assets/logos/README.md new file mode 100644 index 0000000000000..fae2a5a45d6f4 --- /dev/null +++ b/mapr/assets/logos/README.md @@ -0,0 +1,19 @@ +# Logos + +The logos folder should contain three images with filenames and sizes that exactly match the following specifications. Underneath each specification is a list of places where the images may appear in the web app. + +#### `saas_logos-bot.png` (200 × 128) + +- Integration tile images at `/account/settings` +- Description heading at `/account/settings#integrations/mapr` +- Integration monitor tiles and search bar results images at `/monitors#create/integration` + +#### `saas_logos-small.png` (120 × 60) + +- Integration dashboards list images at `/dash/list` +- Some integration dashboards/screenboards at `/dash/integration/mapr` + +#### `avatars-bot.png` (128 × 128) + +- Event stream at `/event/stream` +- Notification icons at `/report/monitor` diff --git a/mapr/assets/service_checks.json b/mapr/assets/service_checks.json new file mode 100644 index 0000000000000..fe51488c7066f --- /dev/null +++ b/mapr/assets/service_checks.json @@ -0,0 +1 @@ +[] diff --git a/mapr/datadog_checks/__init__.py b/mapr/datadog_checks/__init__.py new file mode 100644 index 0000000000000..7a9298148d8fa --- /dev/null +++ b/mapr/datadog_checks/__init__.py @@ -0,0 +1,4 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/mapr/datadog_checks/mapr/__about__.py b/mapr/datadog_checks/mapr/__about__.py new file mode 100644 index 0000000000000..a603475ba9416 --- /dev/null +++ b/mapr/datadog_checks/mapr/__about__.py @@ -0,0 +1,4 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +__version__ = '0.0.1' diff --git a/mapr/datadog_checks/mapr/__init__.py b/mapr/datadog_checks/mapr/__init__.py new file mode 100644 index 0000000000000..62fc1744e9e40 --- /dev/null +++ b/mapr/datadog_checks/mapr/__init__.py @@ -0,0 +1,7 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +from .__about__ import __version__ +from .mapr import MaprCheck + +__all__ = ['__version__', 'MaprCheck'] diff --git a/mapr/datadog_checks/mapr/data/conf.yaml.example b/mapr/datadog_checks/mapr/data/conf.yaml.example new file mode 100644 index 0000000000000..f1b3ea7ec2378 --- /dev/null +++ b/mapr/datadog_checks/mapr/data/conf.yaml.example @@ -0,0 +1,4 @@ +init_config: + +instances: + - {} diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py new file mode 100644 index 0000000000000..36a47585f497d --- /dev/null +++ b/mapr/datadog_checks/mapr/mapr.py @@ -0,0 +1,107 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +import json +import re +import os +try: + # This should be `confluent_kafka` but made by mapr! + from confluent_kafka import Consumer, KafkaError +except Exception as e: + print("Unable to import library `confluent_kafka`, make sure it is installed and LD_LIBRARY_PATH is set correctly") + # on our infra you can run + # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mapr/lib:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre/lib/amd64/server/ # noqa + +from six import iteritems + +from datadog_checks.base import AgentCheck + + +class MaprCheck(AgentCheck): + + def __init__(self, name, init_config, instances): + super(MaprCheck, self).__init__(name, init_config, instances) + self._conn = None + # TODO: make me configurable + os.environ['MAPR_TICKETFILE_LOCATION'] = "/tmp/longlived_ticket" + + def check(self, instance): + metrics = {} + while True: + m = self.conn.poll(timeout=1.0) + if m is None: + # Timed out, no more messages + break + if m.error() is None: + # Metric received + try: + metric = json.loads(m.value().decode('utf-8'))[0] + if self.should_collect_metric(metric['metric']): + metrics[metric['metric']] = { + "tags": ["{}:{}".format(k, v) for k, v in iteritems(metric['tags'])], + "value": metric['value'] + } + except Exception: + # TODO handle histogran netrics + # Error: (mapr.py:45) | Received unexpected message [ + # {"metric": "mapr.db.table.latency","buckets": {"2,5": 10,"5,10": 21}, + # "tags": {"table_fid": "2070.36.262534","table_path": "/var/mapr/mapr.monitoring/tsdb", + # "noindex": "//primary","rpc_type": "put", + # "fqdn": "mapr-lab-2-ghs6.c.datadog-integrations-lab.internal", + # "clusterid" : "7616098736519857348", + # "clustername" : "demo"}}] + self.log.error("Received unexpected message %s", m.value()) + elif m.error().code() != KafkaError._PARTITION_EOF: + # Real error happened + print(m.error()) + break + + # Submit metrics + # No distinction between gauge and count metrics, this should be hardcoded metric by metric + for m, props in iteritems(metrics): + self.gauge(m, props["value"], tags=props["tags"]) + + @staticmethod + def get_stream_id(topic_name, rng=2): + """To distribute load, all the topics are not in the same stream. Each topic named is hashed + to obtain an id which is in turn the name of the stream""" + h = 5381 + for c in topic_name: + h = ((h << 5) + h) + ord(c) + return abs(h % rng) + + @staticmethod + def get_host_name(): + # TODO implement me correctly + return "mapr-lab-2-ghs6.c.datadog-integrations-lab.internal" + + @property + def conn(self): + if self._conn: + return self._conn + + topic_name = MaprCheck.get_host_name() # According to docs we should append the metric name. + stream_id = MaprCheck.get_stream_id(topic_name, rng=2) + + # TODO: Make the path configurable + topic_path = "/var/mapr/mapr.monitoring/metricstreams/{}:{}".format(stream_id, topic_name) + self._conn = Consumer( + { + "group.id": "dd-agent", # uniquely identify this consumer + "enable.auto.commit": False # important, we don't need to store the offset for this consumer, + # and if we do it just once the mapr library has a bug which prevents reading from the head + } + ) + self._conn.subscribe([topic_path]) + return self._conn + + def should_collect_metric(self, metric_name): + # TODO: be configurable. Right now we collect every mapr metric. + allowed_metrics = [r'mapr..*'] + + for reg in allowed_metrics: + if re.match(reg, metric_name): + return True + + + diff --git a/mapr/manifest.json b/mapr/manifest.json new file mode 100644 index 0000000000000..68b8ae61b7119 --- /dev/null +++ b/mapr/manifest.json @@ -0,0 +1,29 @@ +{ + "display_name": "mapr", + "maintainer": "help@datadoghq.com", + "manifest_version": "1.0.0", + "name": "mapr", + "metric_prefix": "mapr.", + "metric_to_check": "", + "creates_events": false, + "short_description": "", + "guid": "7d1de422-85a6-47cc-9962-427a9499d109", + "support": "core", + "supported_os": [ + "linux", + "mac_os", + "windows" + ], + "public_title": "Datadog-mapr Integration", + "categories": [ + "" + ], + "type": "check", + "is_public": false, + "integration_id": "mapr", + "assets": { + "dashboards": {}, + "monitors": {}, + "service_checks": "assets/service_checks.json" + } +} diff --git a/mapr/metadata.csv b/mapr/metadata.csv new file mode 100644 index 0000000000000..ae0af074191ec --- /dev/null +++ b/mapr/metadata.csv @@ -0,0 +1 @@ +metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name diff --git a/mapr/requirements-dev.txt b/mapr/requirements-dev.txt new file mode 100644 index 0000000000000..98b5456bbd0e2 --- /dev/null +++ b/mapr/requirements-dev.txt @@ -0,0 +1 @@ +-e ../datadog_checks_dev diff --git a/mapr/requirements.in b/mapr/requirements.in new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/mapr/setup.py b/mapr/setup.py new file mode 100644 index 0000000000000..c7d9a740eca0d --- /dev/null +++ b/mapr/setup.py @@ -0,0 +1,54 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +from codecs import open # To use a consistent encoding +from os import path + +from setuptools import setup + +HERE = path.dirname(path.abspath(__file__)) + +# Get version info +ABOUT = {} +with open(path.join(HERE, 'datadog_checks', 'mapr', '__about__.py')) as f: + exec(f.read(), ABOUT) + +# Get the long description from the README file +with open(path.join(HERE, 'README.md'), encoding='utf-8') as f: + long_description = f.read() + + +CHECKS_BASE_REQ = 'datadog-checks-base>=4.2.0' + + +setup( + name='datadog-mapr', + version=ABOUT['__version__'], + description='The mapr check', + long_description=long_description, + long_description_content_type='text/markdown', + keywords='datadog agent mapr check', + # The project's main homepage. + url='https://github.com/DataDog/integrations-core', + # Author details + author='Datadog', + author_email='packages@datadoghq.com', + # License + license='BSD-3-Clause', + # See https://pypi.org/classifiers + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Intended Audience :: System Administrators', + 'Topic :: System :: Monitoring', + 'License :: OSI Approved :: BSD License', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.7', + ], + # The package we're going to ship + packages=['datadog_checks.mapr'], + # Run-time dependencies + install_requires=[CHECKS_BASE_REQ], + # Extra files to ship with the wheel package + include_package_data=True, +) diff --git a/mapr/tests/__init__.py b/mapr/tests/__init__.py new file mode 100644 index 0000000000000..b76d6b83ebdd1 --- /dev/null +++ b/mapr/tests/__init__.py @@ -0,0 +1,3 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) diff --git a/mapr/tests/conftest.py b/mapr/tests/conftest.py new file mode 100644 index 0000000000000..102ba8a390950 --- /dev/null +++ b/mapr/tests/conftest.py @@ -0,0 +1,14 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +import pytest + + +@pytest.fixture(scope='session') +def dd_environment(): + yield + + +@pytest.fixture +def instance(): + return {} diff --git a/mapr/tests/test_mapr.py b/mapr/tests/test_mapr.py new file mode 100644 index 0000000000000..a00e550c070b7 --- /dev/null +++ b/mapr/tests/test_mapr.py @@ -0,0 +1,11 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +from datadog_checks.mapr import MaprCheck + + +def test_check(aggregator, instance): + check = MaprCheck('mapr', {}, {}) + check.check(instance) + + aggregator.assert_all_metrics_covered() diff --git a/mapr/tox.ini b/mapr/tox.ini new file mode 100644 index 0000000000000..ff134b30fdcd8 --- /dev/null +++ b/mapr/tox.ini @@ -0,0 +1,20 @@ +[tox] +minversion = 2.0 +skip_missing_interpreters = true +basepython = py37 +envlist = + py{27,37} + +[testenv] +dd_check_style = true +usedevelop = true +platform = linux|darwin|win32 +deps = + -e../datadog_checks_base[deps] + -rrequirements-dev.txt +passenv = + DOCKER* + COMPOSE* +commands = + pip install -r requirements.in + pytest -v {posargs} From 050c52293c78d5540950574b0ef4fdc73f7fb139 Mon Sep 17 00:00:00 2001 From: Julia Simon <611228+hithwen@users.noreply.github.com> Date: Mon, 19 Aug 2019 18:04:06 +0200 Subject: [PATCH 02/19] Implementation + doc --- mapr/README.md | 27 +++- mapr/assets/logos/README.md | 19 --- mapr/assets/logos/avatars-bot.png | Bin 0 -> 831 bytes mapr/assets/logos/saas_logos-bot.png | Bin 0 -> 9389 bytes mapr/assets/logos/saas_logos-small.png | Bin 0 -> 673 bytes .../mapr/data/conf.yaml.example | 31 +++- mapr/datadog_checks/mapr/mapr.py | 98 ++++++------ mapr/manifest.json | 2 +- mapr/metadata.csv | 148 ++++++++++++++++++ mapr/requirements-dev.txt | 1 + mapr/tests/common.py | 22 +++ mapr/tests/conftest.py | 6 +- mapr/tests/test_mapr.py | 83 +++++++++- 13 files changed, 361 insertions(+), 76 deletions(-) delete mode 100644 mapr/assets/logos/README.md create mode 100644 mapr/assets/logos/avatars-bot.png create mode 100644 mapr/assets/logos/saas_logos-bot.png create mode 100644 mapr/assets/logos/saas_logos-small.png create mode 100644 mapr/tests/common.py diff --git a/mapr/README.md b/mapr/README.md index 51804eee82997..18e4e6d1d0131 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -10,8 +10,14 @@ Follow the instructions below to install and configure this check for an Agent r ### Installation -The mapr check is included in the [Datadog Agent][2] package. -No additional installation is needed on your server. +The mapr check is included in the [Datadog Agent][2] package. However, to be able to run it you will need to perform the following steps: + +1. Download and extract the [MapR Client][12] +2. Update `LD_LIBRARY_PATH` and `DYLD_LIBRARY_PATH` as explained [here][9] (usually with `/opt/mapr/lib/)` +3. Set `JAVA_HOME` (if running on macos you will need to install system java) +3. Install the [mapr-streams-python][7] library. +4. Create a password for the `dd-agent` user and have this user in every node of the cluster with the same `UID`/`GID` so that it is recognized by mapr. See [Managing users and groups][10]. +5. If security is enabled on the cluster (recommended), generate a [long-lived ticket][8] for this user. ### Configuration @@ -27,7 +33,7 @@ No additional installation is needed on your server. ### Metrics -mapr does not include any metrics. +See [metadata.csv][13] for a list of default metrics provided by this integration. ### Service Checks @@ -37,13 +43,26 @@ mapr does not include any service checks. mapr does not include any events. +### Logs + +MapR uses fluentD for logs. You can use [fluentd datadog plugin][11] to collect mapr logs. + + ## Troubleshooting Need help? Contact [Datadog support][6]. -[1]: **LINK_TO_INTEGRATION_SITE** +[1]: https://mapr.com [2]: https://docs.datadoghq.com/agent/autodiscovery/integrations [3]: https://github.com/DataDog/integrations-core/blob/master/mapr/datadog_checks/mapr/data/conf.yaml.example [4]: https://docs.datadoghq.com/agent/guide/agent-commands/?tab=agentv6#start-stop-and-restart-the-agent [5]: https://docs.datadoghq.com/agent/guide/agent-commands/?tab=agentv6#agent-status-and-information [6]: https://docs.datadoghq.com/help +[7]: https://mapr.com/docs/52/MapR_Streams/MapRStreamsPythonExample.html +[8]: https://docs.datadoghq.com/integrations/oracle/ +[9]: https://mapr.com/docs/60/MapR_Streams/MapRStreamCAPISetup.html +[10]: https://mapr.com/docs/61/AdministratorGuide/c-managing-users-and-groups.html +[11]: https://www.rubydoc.info/gems/fluent-plugin-datadog +[12]: https://mapr.com/docs/61/AdvancedInstallation/SettingUptheClient-install-mapr-client.html +[13]: https://github.com/DataDog/integrations-core/blob/master/mapr/metadata.csv + diff --git a/mapr/assets/logos/README.md b/mapr/assets/logos/README.md deleted file mode 100644 index fae2a5a45d6f4..0000000000000 --- a/mapr/assets/logos/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Logos - -The logos folder should contain three images with filenames and sizes that exactly match the following specifications. Underneath each specification is a list of places where the images may appear in the web app. - -#### `saas_logos-bot.png` (200 × 128) - -- Integration tile images at `/account/settings` -- Description heading at `/account/settings#integrations/mapr` -- Integration monitor tiles and search bar results images at `/monitors#create/integration` - -#### `saas_logos-small.png` (120 × 60) - -- Integration dashboards list images at `/dash/list` -- Some integration dashboards/screenboards at `/dash/integration/mapr` - -#### `avatars-bot.png` (128 × 128) - -- Event stream at `/event/stream` -- Notification icons at `/report/monitor` diff --git a/mapr/assets/logos/avatars-bot.png b/mapr/assets/logos/avatars-bot.png new file mode 100644 index 0000000000000000000000000000000000000000..96c4733dd5de78e51a607d72fe40d9e146a253ff GIT binary patch literal 831 zcmV-F1Hk-=P)C0000*P)t-s0002U z5H8kCV&sUI&n`&dd5Ya?eajy^>!z{)|NqiGRs8Yu_~PdE)7a;ir0%u8*;{b&#LMfe zwe7LH^UTulyv6at%JB*g3jhEB0d!JMQvg8b*k%9#0;owuK~#7F?9Q&BOHMo^m_kC?S_oj&X9^<9Z9WXaeN+Z|2qO$ z=j=1$7Z;)-d0u8kvdAj=&j3>XQqqyNd_^h|1X>nKRw}7OEcvNz_fr6yyMhtb9yy-* z-}jvcika1-F)a_;X8;M?b*{JK%d!%Mo3%xAC9^LKfNn$Y88D~s{uBfHH&nj? z8co9KEM@?d0IcvR<{;%M2GlGH41oI?VE$Vm&4ytZtA+G5K!Gb9OdRyQLfJy)fCpi|g0R{{fq$vPWsPW$b zR`NyF7d^R81h&`t`U${FgOCB-T3PL&ej3XpTf zD+b{2;?1)CaxVb%OBFEB1gTJf|CFBrz^rEC?>}(_@Xoo1y_UXBT-<_a}}ySDotW-eJm$(r73|C@?TEXtFXAs&DnsTk%6eczY|V(PqC@u+FN| zVlY*|h!5WkWCs}?XBe0d*#8t*n6wOnH-L_%y0(ipP=Vjn-j>xEWN!jy^{{n#L&Lxb zc<{e9ZNVEp|33d7r;DZ8|BYnl{2y6w z0@?og!p6bM&h}sKx2^*Jc=?r_EWvM)|KS(n5cn7J|MUGPjsV*~!T+DZ{9Eb2yl+y4 zPz2ciJ8eQJ3O#f>Fff!SvJ#@|9`!cS~aMLUu3;oOJ)5D~GNgJv%lmUqZfYMU4IfLd|;W$hOxYC+;70zqi! z(_IA2A%>l*UIZXI79m@jD$O>Hn3a*i7_$vq2=NgNLePzJVErPar~Fq6KkBCp)mH*) zuH0R}yl$M&$*Ksjmx~Q<#n_60#?2+_Tmc0RwJsWt0CtP%ggr{d1O)fN4#ygN?OfKk z6%i4D=L+Z(mwK%Nki(^kauHg`|@ zOzmY5nIoSaf+d5$+H<*O65=0xn2YL)p%#q-oi+@uR^Lt=;rmlu^<$hIevU(kByI%e zdx-Ess(k!=eVSsJwTw;lJ*rIc9IUp}a0Gbk@zz2-iuVh%YQU`%bPVBzr5VLDf&vo! zfnE)vcLQ%)GRFJu0ziE*z$~IW@>PI)r_0 zvD-l^3$Xd}%Y^);yyS30h|)UfYJ-XdK;pWuOlySO;Ddb9Lw}t>+%gY*%TLL<2Sz?f z_Ddi|5CO{(PyTPZrXPr(_@**;(6NTU#^0*C8zP83Zio)#$t$;SnLFSE{ideEewH6i zdAzPUfU;qv5q<+`6`(Heat5X6MP>N>{{MsmG+0iFHfHDI9qsLQg99*iWq!3 z{2V65oQHM-35m=Ih#X}N9+e+Yt5BzvlHv_K4MqrD@b>#UE;?tL{0h%I%q%7NNFm7; zIT10`ZR?=KM|c=9q1>E~kNCR2HXS)s9D=#pg4`2qm)OHs7aA$XvdrCxuTRav^zNM) z@0@N0a9in)YTD=L`{HaT*`40lBln#G(G=5FV3X-XCDZTWkN7ijMJ&F(ztlRvhbBku zTmq5!QYkYFHL)l^x?jbxZ#O16?C5b{)v^`{zoNFW-#P=4P2)8?( zKNfAgbfj<)bYn7Vy<(snxTCFp!tXAzBT11Bw7_T&Y5(FAJZ$ucH7!qz2KyC}GMAhm zLp?vg5f7NYF22puCCT%GaOc8ljopAe-Yui?zP8hY!Aw=VK&jw7=PQwzDGGN$0cM50 z*kgBq#Zm*}P1n8P@`B)pWb4lv3Em(D&Tz<30i~_OQgCm#!Z(;-WAQ;~>F?l#t%-a3 z`W3HhzJayC?zCXk9%N4RrtVMfD0@|&asa4kTSu|O0eUBTS1Ur>gz(2x%i>;(oMlA> zbgLj4SCVPrE+o2_7akD0aNd!dLvCbZS#efxr*AV{*5L=>aGJuJAjwX$3r}R4nTJxU zKemx4an{qtb7S3AboSPeK~t(JrZdxeWKE~cH~^H6#vk4!`_N#H5hRk+KUQ}*tes9GBlC~ zHbyZW3}IF*WEykiu4dbOoVvT2$(r3B`6c#yf1)QWJxg>RY$R@RW(K~LGaAqh6Q;_a zQ{!KiVlT-6zmBDvu|1%$VWq;H$lRGcX|YoMCg#l7e|M7#NFAz@DoD!qUrpFAYqO1- zx+^X2fjh* z*kx%MSh4HjSU~;V#9#epPUgYHggED(i^x$-hvjR=v?TItra)43`=GN3;b0ykP0~AP z^fTgSVdaUOlG?OJ=up!+&g=+_4hR!@lvanh+y^jB9)eVHb&@a`hbJ2n}d-BY?zt@69=w zCunP1h&VVAmu%D^>wwkbAb*AhJwQM<>E+tdsSZ0P;vknD!p2BFnFBGQmQmqiJHV%2 z=&?qOV9@Y_Q6)j2k5GAm#CsmJJt_4>210WK;#H-iSdP~#dR|DXP7)>=A?x&dSf+eu z^re<2#eM;HA|B4+31M^P5h?s2jrtO>UU--E8dq3a70os z5wH))*6BYaISL^RByT&Yh;F+SQ?G=eXB~${F6rftbP|M{m08ntPx$#Zf?IX&0@L1E z{GFQMc==uzD+O6))tMQMb$ih`@B+Wfm}ONLzAbFd-VzQxGiW!$&uuG8mhg+fZPj0o%P%HfKT~%#kA`n9alQMsbZp8lN=Ea8 z{x@iS=3<%l*uxfJR=pA0PJ=3e)EzHd@K=d9x@eU$u!+P>@c`6Jtz+S=wQ-C6Y}+)5 zq)k2PA8y?le%dR|{tU%6iyZ!@>4o)5v!CO(J$eqx8sJl450*HI`q}VfH^AXCvQd$y zp-zr=5S3?jI`|e%5A*M+kw%7Ls64Gkc=k(Rnr^C$bF^uehVLXB64_Gpv2QC3VFF=i z6eG(Q_k0ppi}DgK-v%VfG4j{xevtM9FCi)ohPp}ppsH(AZJQ*-#Vz+Cxjaq^q0$_k zuI2>W)nMQ&0lGby{BZejwK`9J93um^Z-C z*A4M498*i@D^N2Gp6zfRC0qt)j;RqyW6h?5AV^qF_EnnWavD(!aI58grwz01Bw&-6qKSAZrA* zY5e3%*=o2P&iX+~Z8bE~@u%9*Dxx4e;twLXxbXh!Kd1~xIp7J>I=K(N_q_>mrF(vU z{rFCMYJ=B;@AH)md`S*n@>F0q;%5#+2j!+3pK-%$#BkFAi$6XUsl<77%0scAlo$>l z!+68Ytj;vkhJ_)TXLT7l4iLmNBQFwCvm!knU%%6Vz4fCfsDb|2{-p=ydtj5q(kc9M z@4+9b8}S%blVaGLN(T=6ne!R4ek%ZHLZIFUUq|eo@jOW^iF%W7yph732lOFsRI>`f zi6)jHWVdF5el;-tsK*#xjL#W511-`#smg*4Y~jn-6}kHr{cqPZ`In<9CYWJ($U>cx zS4lW3s)odTQblmq>$Lt+TIAf7D>*_*sggbMl+jH+P@yrEphky+OBhbJSEAZOEs5kt z!N&eE^c)NKZAy_R|YM8WCNPz>NtV&`z-{%T~B=AD6U#Iw6Y{-uH z;8@jc9M|PgDu45g>-|X0*a!4`cj5q^1J;$)&bS6*X#G zu&Ar+P3K;6j~%RTG|Q6zg6BIB|7a%&AyW7u= z^toT|n`676ema;~Xjy9ob$&Tf#J{{@2A3Ffns&{6asNB)?RW82cHC+Z%oZJPPTpE^|L7EA*^s z3G?_AocEu`w_Jrk3NfTB@&z~25XE?T^pt;$4zhn90X8hFiUhu9^iB)WG zZa;4~Zq7lGzlsN?Zx}$Q4U9}8#!(ZqB;#)avbF!R-ac5IzV^p}eV`Z+HUtkG_LKd- zTDnr?S}{gy?ZRSnqQP34CtXiSb`BFtj-QN7+#15nMk+Bz7tfQLCR^zPu&Bx#QLB%J zLPKn6ai>hO#KuOM(;OR13v|Q3VRuPA38eAop7<7ur256%8rJK`f6DcXD!Q}7?9A)%n-8$l<`r?0kM)S8dg!Xn*Z{I9Fu6M(JIQ0Q)i zy5Td}!;F*7iC4w2?-Wei191lw2a}35RWD|L4jV0atnP#b3%ASeCgC_Q@?O?i9)*l~ zsk1xs2j#B2d;ZiZE}QW&{DVCW?b`j6MQCE=KGikaeu<*+u*W@ymN`tPeSAw#z>ls@ zQS--llQClu{G{+VI+xRo0A4e3D4OWzfegUaRjUa6F1HxRo0+08n8p|9`ykDGQo%1e z&KJF8>_bGt1@6l&syrLIsZec8(?{XlJ)q*u0T&99x!D zvSO=d;l+e|Rp0XC`YqsT!_dE-iM1d;R-tvxvCib8AY*mox7#3xplAAQrckbk&U?9! z%igN1rt@0Q#~(66#K%mNQa*^EKn8y9FMh?m5Kdc`U2S2s!ikEINLv1EN1--pmqbl) zr_C!LF?sQaY_joA@h>Q^GM+o1m@wH3m*iR{13RMRfg!3HM!AUM&Si%9$XEbN>S`Hn zFL4H5c`N;MOp2gw+byL%$AYq>Q;-P>DTdc5e*VpSxt6hMLk4qe3|4FgUP$SmAk4t{ z=t%v!r&DB&jlV~oftTra$_t2Ib)gN_c(T_Spd!iBJp(riTGl3NmpsG@YmPK=1p(+g z4B;wh9%P?IdSRYqC<_92#5HIp_<1L0{dR~1g%&Zo0`h^I$$rzyj27wSnO@wE;s#@2 zCc4y~K_v6fNapo{db_An$TmRw_Pf%2my|7rO~`R%pCvC78DLxo4BxN{dgj zt^K=~9`Ui;w8d7`O1cV^DzniZ@|Sd+>#n_``d~y}gQO>8dZM$Mv?2Et>ji57-h@&& zan>GheQtm_Ks9Oj#2fTmWjqLexB z{Kr$OiMj{8kaSR2Ok%B{#{iD(A#O`Hg3}`Xfu<}I)g2FWW4fRxT_g=?c+H^ccnNuL zW-S>M-&3nGgP_|O+Dh=<#_NI`i&LX()f(97o0Y1;lL4X*_Uc`PeNEagJ$ASbrM_4+ zxFc-)JE4?{YDEvw_(Y?feU{CP|A z7qpAvu(@1adXPr(g_z|Dx3NMMEBKFRsh;7b`^LtxwYShotNO;@dCwXY$k{8m8w;J? zwmbn+4#lTnX!7E7;=~VQ6P>BtMiVF<$XUUtYP)Z1Z_jsj zyJj$JH?&h=Vw4!b$IH1n-2cs-h7uCfhUMNFwI!XUJ}OZ#Va7qFHI7kj^7Fw1$IvC~ zflsVRMJU)+tBb5hz)G@e(!3h4l*E^)howm3?2hk+-n|@m{Bj9ssX%#BeQu;iK08@J zsbM=eXYp`lH2G8x!GR}TTGH;FtA7?=Rx=1(0Z35wv$XHYMVMH$ByR(9>&}eM#5c9r zIFM=#QZ?k9WkmYTPMedWe+5mMV}@~-N(Rov3WDWOQAS=D+mo)i1>FFoG@bcFgSHuD zdG`q<9H^8l=FiDlQLQW+A^G0K;;D79y~MIE$PM**_c5>8HawZuU3uzlV|)#viSse; zl)lJ>5!g(9GzdZ{o6NuVZ`V&`z62GW|Kk6Y!YP$1&M!<$K&`44 zH5M_U3aQ8kBo$=-B|BY8v}s7RnFOqha zxNM)1{6k)|m(59+7X0Q;6Wd zXRdO^-Zaw$dQf)lJsE>~Ne^ z{YBnVf1EHvpew|f!WmKajs=s+WsRnf*{jF32hH?XJj~eVJnq>Kf&!lFQZ(3%BC9&= zsqU^u#~g}ML^L~Kv3{r@78&IuQI#1^kt>qUPhK4JyQq_j?bVkGYSk4h?sf)yBAu0p z>8@K!TVph;+?-?YJ!4In!;c@*soenf1aYN&jW^m;i?@fmybvW{_f7nBOD@5YH3eaai8Z3 zLQ|KC-K+p_t;)c&UVM!q{kJ2j!QD}@d*Ai26FO3*7EzlO?S!#=0+x5$=~S!MqD#vm zC+XJrWRz&K%viQ@6^)=K8f=JqoYzpKqyFzUf1R65j^vp`HjqKH1TfDRovw#b)jsgn zbNgzRGzCN|WNuV1-0!sw;H5a0KJu4))VfLiY)M($*$%(vAEV;2AqRd5y{$R9C}JVY zvz+ryDNY>HQBw_6**UKAH>~d^d2(mG4pn}>{_scTx4FN}NT2+#;uiY)0*T-UmfNTl z*&5N~dkNdHPt0Zo?8C|tz)97Z*@e5g)&3nO;AX3P&Dpxf2s8HaT>GVt4j=pd)CN^^ zI%H~hu?X}z53QlP*UQd@Fi-_^DSOj#T=I67fkQmbrV-RY)3$a-OP*@Pe{?z3SGc2U z^GRMID5LI|$hX7Pp)Ad^swI2dwr1XoLb}Zi{?gZPyHZT)E3K|=-xTJUB1hNUmPYXy z#WFp*TlTn9Jsd+HtuS0&9qgSrBOrg^3MD~+LJNUhN#ma`oaVnXg|))^yXW{(+_8N* z!qx_}{U2VNKg>;ZRPg6|@s)o`Xn{Db^4O^t7xP}027xFa@$~qwpPva{1Y1!lkE-D! z#SDJHSSE~xCJ4F>n}sm)lpnh(5zKd5c!!%g<`R!jbfP%6=gVszs_$%Ex~6GG`XMLj z(A1cQ#7|qjQzss#8C3^;QW@1HHT)SG#i&U_cx@j3a+I58>UG@uI7jN1KkQSBhK$fR zM=20IbkdL~ZtCZOg)Sf8)k95lrQ*1YPmXH;foPX$`jz3e8+Z*3pVb7d#Mc}psu};p zwwR5pyN$^|=PN@sc_6!CFp`KxhW&BM$;xD8StIvWq{qPAa`EfceZjNzw}(d{QOckM&7 z>7`;lm5cDW?W8P`i#nf>dK!GUzspzwR*tWD>4`Ta1L;(Q8P_?Q2>bH=0SLy|1QL76 zL=tkJ^GV7=;c@G}=ZX)T$!qG7sM;C|K4khWV>R7xuUE9L($i%R{otG`3@BG$A@xl9 za!7Dn=!w@f)VBxzRMwXOlZp|>TI()`?vK4vEDdpR+)(M1z7`L-w=*Vp`aSt)a4x~^ zMS{}mb{&nQt3ZZq$3n^Vg{3Q|w1*X?w=G&P5^Aos{c~HX^i-BjV=Fm32tO<0X~pOJ zW^|M1*LTl=>A>!QW7?;c4*L5WD*E<)*q4qNh%6{+?FU=_AbEV)`V9QU&dg>yY1@b< zmR$Tew4yOHITSH!S_=}6kj##1>dJzIuRc{Fwnp1{XYVF` zY{e#w#Z~WSMfVWX{X?0_JuC7Na4T=h;spQxJ`>3c#Mvo`&}RE+Kjo0CWfYL_(c`C0 zGj;v52^EUiKU-$!4;c_6e%LRcx+Yc122jvf&r=igVl>?x4{9z&>n(7!{-bwhB|(NI0a7 zn~d3!jmc!vYY$CxnVcbFBDeCtzQ!Lrjz7Nw)0-k!%pb$n?kvSQ?@qVwEt-!s>rYor z70Ymcgnxct{&LNkM%JnX@asMRmWB87TQ^_6AZlEyESpVo@Oj$zyTESz5P?zD~HcNCD_s8~q)ZQBhVm&UEiZ zh%lCvZ4=C*T?x4n;=l*S^_0odCo(QF;h42=`v+le*f{nrk-DCvt%@&egSlImXQCP4 zIOUOfTu5^DS8pn}HE#_5d4YH4mi~kY8Z0y(*ocOg)I)<=N$w64aPBy|H^aq=tvu@z zyBf*8+;I@TKf^9Xa|t=qJ8Z+l`>a_Xi2ts!)$IEtjweXxEhh^N4by8FwW_h)%HPXr zTQlEk;}%VOTR&@DQvEnh^c#r`JMehLJ${|DpNlauTe=zDYZ~tIOyueouWIrNtiRX> zcsOHongPYPvztp2^@y?3Rsv3yoiHMG^OQN~x0stIeX2LZRrv6vf5tyaZ|6^_Ogld^ z1EUI18bY7a{n?Y{j(K;fccy&Cb?W^TwlxF2{|B`qiwN1SGEWyh{oybxTR3mxrVA$0oH z_D9v@SwJMa+)Yn-HM$koJ|uIXD2a+Bh{xEUNx?vVu)b&@Kj8BNua;rTLg-_qc|BRnsUG*GbXm6_e2s z`P7Wd?cc|E_B`>Rf6q7g#y(#BGww;-_T5V5rbn^Ent@Pn8Ztgt^y1-Z07;f$R*Dk3 z-8m{H_Yn2DuVG0>;I8k`#Gj1>wD(?~DS>$=`#sFx`H|cAg^7l5a`6ywL9Zbso(bF% za=Y>$2lLMR@DZD^mBrA- z4Cq($b>gYDCNlh=zc1Ap$LMLDr;3R{g@_8kh}%740i{d~;8;AW!R{#Niw$Dk(s2#R zw4#B#E0D-PAF!$Wt_tdq(~tBRgb>qddeBu6D7r{h$T`5BCzugo4Ht(wL55>DFG=NK zgPDWi$WIc@nk#BKRWxim(`qM4b?zQ6A~zTJwHa?zH81H!abFw*l7hrM$X~TOEBU`T kN8>+vC7X2-KVRY4&uOcUQ_7D2$sv-JRFtR^`}+NV01=PATmS$7 literal 0 HcmV?d00001 diff --git a/mapr/assets/logos/saas_logos-small.png b/mapr/assets/logos/saas_logos-small.png new file mode 100644 index 0000000000000000000000000000000000000000..a43a8bfd36d27f6adee05ffd2fd20d06eb5a8e6e GIT binary patch literal 673 zcmV;S0$%-zP)?zO(_rm@{>ea|jP)=XmOm!$vy|NQau_0!n+;^yFa zisOWn^UTxt+TZoo+cSkqnE(I)0(4SNQvg5!PmHJl00Id~L_t(|0qvNFmYgsQMH5?Y z6oEAUN@Ri<2?MLYAU(P%UpZ;8);ftzCU7x;+cCT?O&S(x`KYUxV>S62$s0t^su zWM3slMA^LG0L#)Lv2DM_excH=U zTFvS~V1vk)iI=Oyp<1l7tTTL6qgDuP5cz43r}`e3bbDJfDg^e!3h9W7d#Rl*XLWBu zlCyfO7H|FZWtQap^%yLH6K`}yY#9vFs8eQND@M4;JgRBNG?c(S@8k<{4hG_v?_6l- zB1#c17%hPpDrjU8cUoE-wo@}(fza_fF-~9!*6Xi*9&k$IT*^4Pz$zx3|8u<<-7H}j z**S(gJ*AcX#J(-YwKUd=5e=7B#J03rG6Ey=Z83JhL!B7S6ap*ZxMLwOA`5rLey)Ey zp~XVxmFd_aBQPQh;g%SO9*z0()jt>GY|@aYsu@pL&`*rUoZoOy_TbF7@9w!c5XI9s zAdA9BioF3?J6sKs0ZDcjTzkuG;y+Cj|NW058jVJy@do$-hV?vv7_J~h00000NkvXX Hu0mjf+V3 + + ## @param topic_path - string - required + ## The mapR topic path + # + topic_path: /var/mapr/mapr.monitoring/metricstreams + + ## @param whitelist - list - required + ## List regexes of metrics to collect. They will be prefixed with `mapr.` + # + whitelist: + - fs.* + + ## @param mapr_ticketfile_location - string - optional + ## The path to the mapR user ticket, if included it will override the MAPR_TICKETFILE_LOCATION environment variable. + ## Either the environment variable or this config option needs to be set if security is enabled on the cluster. + # + # mapr_ticketfile_location: + + ## @param tags - list of key:value elements - optional + ## List of tags to attach to every metric, event and service check emitted by this integration. + ## + ## Learn more about tagging: https://docs.datadoghq.com/tagging/ + # + # tags: + # - : + # - : diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py index 36a47585f497d..8641523e8d8ab 100644 --- a/mapr/datadog_checks/mapr/mapr.py +++ b/mapr/datadog_checks/mapr/mapr.py @@ -2,31 +2,41 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) import json -import re import os +import re + +from six import iteritems + +from datadog_checks.base import AgentCheck + try: # This should be `confluent_kafka` but made by mapr! from confluent_kafka import Consumer, KafkaError -except Exception as e: +except ImportError as e: print("Unable to import library `confluent_kafka`, make sure it is installed and LD_LIBRARY_PATH is set correctly") + raise e # on our infra you can run # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mapr/lib:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre/lib/amd64/server/ # noqa -from six import iteritems - -from datadog_checks.base import AgentCheck - class MaprCheck(AgentCheck): - - def __init__(self, name, init_config, instances): - super(MaprCheck, self).__init__(name, init_config, instances) + def __init__(self, name, init_config, agentConfig, instances): + super(MaprCheck, self).__init__(name, init_config, agentConfig, instances) self._conn = None - # TODO: make me configurable - os.environ['MAPR_TICKETFILE_LOCATION'] = "/tmp/longlived_ticket" + self.mapr_host = instances[0]['mapr_host'] + self.topic_path = instances[0]['topic_path'] + self.allowed_metrics = [re.compile('mapr.{}'.format(w)) for w in instances[0]['whitelist']] + + mapr_ticketfile_location = instances[0].get('mapr_ticketfile_location') + if mapr_ticketfile_location: + os.environ['MAPR_TICKETFILE_LOCATION'] = mapr_ticketfile_location + elif not os.environ.get('MAPR_TICKETFILE_LOCATION'): + self.log.debug( + "MAPR_TICKETFILE_LOCATION environment variable not set, this may cause authentication issues" + ) def check(self, instance): - metrics = {} + tags = instance.get('tags', []) while True: m = self.conn.poll(timeout=1.0) if m is None: @@ -35,31 +45,17 @@ def check(self, instance): if m.error() is None: # Metric received try: - metric = json.loads(m.value().decode('utf-8'))[0] - if self.should_collect_metric(metric['metric']): - metrics[metric['metric']] = { - "tags": ["{}:{}".format(k, v) for k, v in iteritems(metric['tags'])], - "value": metric['value'] - } - except Exception: - # TODO handle histogran netrics - # Error: (mapr.py:45) | Received unexpected message [ - # {"metric": "mapr.db.table.latency","buckets": {"2,5": 10,"5,10": 21}, - # "tags": {"table_fid": "2070.36.262534","table_path": "/var/mapr/mapr.monitoring/tsdb", - # "noindex": "//primary","rpc_type": "put", - # "fqdn": "mapr-lab-2-ghs6.c.datadog-integrations-lab.internal", - # "clusterid" : "7616098736519857348", - # "clustername" : "demo"}}] - self.log.error("Received unexpected message %s", m.value()) + kafka_metric = json.loads(m.value().decode('utf-8'))[0] + self.submit_metric(kafka_metric, tags) + except Exception as e: + self.log.error("Received unexpected message %s, it wont be processed", m.value()) + self.log.exception(e) elif m.error().code() != KafkaError._PARTITION_EOF: # Real error happened - print(m.error()) + self.log.error(m.error()) break - - # Submit metrics - # No distinction between gauge and count metrics, this should be hardcoded metric by metric - for m, props in iteritems(metrics): - self.gauge(m, props["value"], tags=props["tags"]) + else: + self.log.debug(m.error()) @staticmethod def get_stream_id(topic_name, rng=2): @@ -70,21 +66,15 @@ def get_stream_id(topic_name, rng=2): h = ((h << 5) + h) + ord(c) return abs(h % rng) - @staticmethod - def get_host_name(): - # TODO implement me correctly - return "mapr-lab-2-ghs6.c.datadog-integrations-lab.internal" - @property def conn(self): if self._conn: return self._conn - topic_name = MaprCheck.get_host_name() # According to docs we should append the metric name. + topic_name = self.mapr_host # According to docs we should append the metric name. stream_id = MaprCheck.get_stream_id(topic_name, rng=2) - # TODO: Make the path configurable - topic_path = "/var/mapr/mapr.monitoring/metricstreams/{}:{}".format(stream_id, topic_name) + topic_path = "{}:{}".format(os.path.join(self.topic_path, str(stream_id)), topic_name) self._conn = Consumer( { "group.id": "dd-agent", # uniquely identify this consumer @@ -96,12 +86,22 @@ def conn(self): return self._conn def should_collect_metric(self, metric_name): - # TODO: be configurable. Right now we collect every mapr metric. - allowed_metrics = [r'mapr..*'] - - for reg in allowed_metrics: + for reg in self.allowed_metrics: if re.match(reg, metric_name): return True - - - + else: + self.log.debug("Ignoring non whitelisted metric %s", metric_name) + + def submit_metric(self, metric, additional_tags): + metric_name = metric['metric'] + if self.should_collect_metric(metric_name): + tags = ["{}:{}".format(k, v) for k, v in iteritems(metric['tags'])] + additional_tags + if 'buckets' in metric: + for bounds, value in metric['buckets'].items(): + lower, upper = bounds.split(',') + self.submit_histogram_bucket( + metric_name, value, int(lower), int(upper), monotonic=True, hostname=self.hostname, tags=tags + ) + else: + # No distinction between gauge and count metrics, this should be hardcoded metric by metric + self.gauge(metric_name, metric['value'], tags=tags) diff --git a/mapr/manifest.json b/mapr/manifest.json index 68b8ae61b7119..a3d530bce65e0 100644 --- a/mapr/manifest.json +++ b/mapr/manifest.json @@ -6,7 +6,7 @@ "metric_prefix": "mapr.", "metric_to_check": "", "creates_events": false, - "short_description": "", + "short_description": "MapR metrics", "guid": "7d1de422-85a6-47cc-9962-427a9499d109", "support": "core", "supported_os": [ diff --git a/mapr/metadata.csv b/mapr/metadata.csv index ae0af074191ec..724510058e622 100644 --- a/mapr/metadata.csv +++ b/mapr/metadata.csv @@ -1 +1,149 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name +mapr.fs.reads,gauge,,read,,The number of remote reads.,0,mapr, +mapr.fs.writes,gauge,,write,,The number of remote writes.,0,mapr, +mapr.fs.read_bytes,gauge,,mebibyte,,The amount of data read remotely in MB.,0,mapr, +mapr.fs.bulk_writes,gauge,,write,,The number of bulk-write operations. Bulk-write operations occur when the MapR Filesystem container master aggregates multiple small file writes from one or more clients into one big RPC before replicating the writes.,0,mapr, +mapr.fs.local_reads,gauge,,read,,The number of file read operations by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, +mapr.fs.write_bytes,gauge,,mebibyte,,The amount of data written remotely in MB.,0,mapr, +mapr.fs.kvstore_scan,gauge,,operation,,The number of scan operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, +mapr.fs.local_readbytes,gauge,,byte,,The number of bytes read by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, +mapr.fs.local_writes,gauge,,operation,,The number of file write operations by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, +mapr.fs.kvstore_delete,gauge,,operation,,The number of delete operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, +mapr.fs.kvstore_insert,gauge,,operation,,The number of insert operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, +mapr.fs.kvstore_lookup,gauge,,operation,,The number of lookup operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, +mapr.fs.read_cachehits,gauge,,hit,,The number of cache hits for file reads. This value includes pages that MapR Filesystem populates using readahead mechanism.,0,mapr, +mapr.fs.bulk_writesbytes,gauge,,byte,,The number of bytes written by bulk-write operations. Bulk-write operations occur when the MapR Filesystem container master aggregates multiple small file writes from one or more clients into one big RPC before replicating the writes.,0,mapr, +mapr.fs.read_cachemisses,gauge,,miss,,The number of cache misses for file read operations.,0,mapr, +mapr.fs.statstype_create,gauge,,operation,,The number of file create operations.,0,mapr, +mapr.fs.statstype_lookup,gauge,,operation,,The number of lookup operations.,0,mapr, +mapr.fs.statstype_read,gauge,,read,,The number of file read operations.,0,mapr, +mapr.fs.statstype_write,gauge,,write,,The number of file write operations.,0,mapr, +mapr.fs.local_writebytes,gauge,,byte,,The number of bytes written by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, +mapr.cache.misses_dir,gauge,,miss,,The number of cache misses on the table LRU cache.,0,mapr, +mapr.cache.lookups_dir,gauge,,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, +mapr.cache.misses_data,gauge,,miss,,The number of cache misses in the block cache.,0,mapr, +mapr.cache.misses_meta,gauge,,miss,,The number of cache misses on the meta LRU cache.,0,mapr, +mapr.cache.lookups_data,gauge,,operation,,The number of cache lookups in the block cache.,0,mapr, +mapr.cache.lookups_meta,gauge,,operation,,The number of cache lookups on the meta LRU cache. The meta LRU is used for storing internal B-Tree pages.,0,mapr, +mapr.cache.misses_inode,gauge,,miss,,The number of cache misses in the inode cache.,0,mapr, +mapr.cache.misses_table,gauge,,miss,,The number of cache misses on the table LRU cache.,0,mapr, +mapr.cache.lookups_inode,gauge,,,,The number of cache lookups in the inode cache.,0,mapr, +mapr.cache.lookups_table,gauge,,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, +mapr.cache.misses_largefile,gauge,,miss,,The number of cache misses on the large file LRU cache.,0,mapr, +mapr.cache.misses_smallfile,gauge,,miss,,The number of cache misses on the small file LRU cache.,0,mapr, +mapr.cache.lookups_largefile,gauge,,operation,,The number of cache lookups in the large file LRU cache. The large file LRU is used for storing files with size greater than 64K and also MapR Database data pages.,0,mapr, +mapr.cache.lookups_smallfile,gauge,,operation,,The number of cache lookups on the small file LRU cache. This LRU is used for storing files with size less than 64K and also MapR Database index pages.,0,mapr, +mapr.db.flushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the bucket size exceeds a threshold,0,mapr, +mapr.db.forceflushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the in-memory bucket file cache fills up,0,mapr, +mapr.db.get_rpcs,gauge,,operation,,The number of MapR Database get RPCs completed,0,mapr, +mapr.db.get_bytes,gauge,,byte,,The number of bytes read by get RPCs,0,mapr, +mapr.db.put_bytes,gauge,,byte,,The number of bytes written by put RPCs,0,mapr, +mapr.db.scan_rpcs,gauge,,operation,,The number of MapR Database scan RPCs completed,0,mapr, +mapr.db.scan_bytes,gauge,,byte,,The number of bytes read by scan RPCs,0,mapr, +mapr.db.append_rpcs,gauge,,operation,,The number of MapR Database append RPCs completed,0,mapr, +mapr.db.get_currpcs,gauge,,operation,,The number of MapR Database get RPCs in progress,0,mapr, +mapr.db.put_currpcs,gauge,,operation,,The number of MapR Database put RPCs in progress,0,mapr, +mapr.db.put_rpcs,gauge,,operation,,The number of MapR Database put RPCs completed,0,mapr, +mapr.db.put_rpcrows,gauge,,object,,The number of rows written by put RPCs. Each MapR Database put RPC can include multiple put rows.,0,mapr, +mapr.db.ttlcompacts,gauge,,operation,,The number of compactions that result in reclamation of disk space due to removal of stale data.,0,mapr, +mapr.db.fullcompacts,gauge,,operation,,The number of compactions that combine multiple MapR Database data files containing sorted data (known as spills) into a single spill file.,0,mapr, +mapr.db.get_readrows,gauge,,object,,The number of rows read by get RPCs,0,mapr, +mapr.db.get_resprows,gauge,,object,,The number of rows returned from get RPCs,0,mapr, +mapr.db.minicompacts,gauge,,operation,,The number of compactions that combine multiple small data files containing sorted data (known as spills) into a single spill file.,0,mapr, +mapr.db.put_readrows,gauge,,object,,The number of rows read by put RPCs,0,mapr, +mapr.db.scan_currpcs,gauge,,operation,,The number of MapR Database scan RPCs in progress,0,mapr, +mapr.db.scan_resprows,gauge,,object,,The number of rows returned from scan RPCs.,0,mapr, +mapr.db.scan_readrows,gauge,,object,,The number of rows read by scan RPCs,0,mapr, +mapr.db.append_rpcrows,gauge,,object,,The number of rows written by append RPCs,0,mapr, +mapr.db.increment_rpcs,gauge,,operation,,The number of MapR Database increment RPCs completed,0,mapr, +mapr.db.increment_bytes,gauge,,byte,,The number of bytes written by increment RPCs,0,mapr, +mapr.db.valuecache_hits,gauge,,operation,,The number of MapR Database operations that utilized the MapR Database value cache,0,mapr, +mapr.db.checkandput_rpcs,gauge,,operation,,The number of MapR Database check and put RPCs completed,0,mapr, +mapr.db.checkandput_bytes,gauge,,byte,,The number of bytes written by check and put RPCs,0,mapr, +mapr.db.increment_rpcrows,gauge,,object,,The number of rows written by increment RPCs,0,mapr, +mapr.db.updateandget_rpcs,gauge,,operation,,The number of MapR Database update and get RPCs completed,0,mapr, +mapr.db.updateandget_bytes,gauge,,byte,,The number of bytes written by update and get RPCs,0,mapr, +mapr.db.valuecache_lookups,gauge,,operation,,The number of MapR Database operations that performed a lookup on the MapR Database value cache,0,mapr, +mapr.db.checkandput_rpcrows,gauge,,object,,The number of rows written by check and put RPCs,0,mapr, +mapr.db.valuecache_usedSize,gauge,,mebibyte,,The MapR Database value cache size in MB,0,mapr, +mapr.db.append_bytes,gauge,,byte,,The number of bytes written by append RPCs,0,mapr, +mapr.db.updateandget_rpcrows,gauge,,object,,The number of rows written by update and get RPCs,0,mapr, +mapr.db.cdc.sent_bytes,gauge,,byte,,The number of bytes of CDC data sent,0,mapr, +mapr.db.cdc.pending_bytes,gauge,,byte,,The number of bytes of CDC data remaining to be sent,0,mapr, +mapr.db.repl.sent_bytes,gauge,,byte,,The number of bytes sent to replicate data,0,mapr, +mapr.db.repl.pending_bytes,gauge,,byte,,The number of bytes of replication data remaining to be sent,0,mapr, +mapr.db.table.read_rows,gauge,,object,,The number of rows read from tables,0,mapr, +mapr.db.table.resp_rows,gauge,,object,,The number of rows returned from tables,0,mapr, +mapr.db.table.read_bytes,gauge,,byte,,The number of bytes read from tables,0,mapr, +mapr.db.table.rpcs,gauge,,operation,,The number of RPC calls completed on tables,0,mapr +mapr.db.table.write_rows,gauge,,object,,The number of rows written to tables,0,mapr, +mapr.db.table.write_bytes,gauge,,byte,,The number of bytes written to tables,0,mapr, +mapr.db.table.value_cache_hits,gauge,,operation,,The number of MapR Database operations on tables that utilized the MapR Database value cache,0,mapr, +mapr.db.table.value_cache_lookups,gauge,,operation,,The number of MapR Database operations on tables that performed a lookup on the MapR Database value cache,0,mapr, +mapr.db.index.pending_bytes,gauge,,byte,,The number of bytes of secondary index data remaining to be sent,0,mapr, +mapr.db.seg_gets,gauge,,,,,0,mapr, +mapr.db.ldb_reads,gauge,,read,,,0,mapr, +mapr.db.resv_free,gauge,,,,,0,mapr, +mapr.db.seg_scans,gauge,,,,,0,mapr, +mapr.db.segflushes,gauge,,,,,0,mapr, +mapr.db.spill_gets,gauge,,,,,0,mapr, +mapr.db.table_rpcs,gauge,,,,,0,mapr, +mapr.db.block_reads,gauge,,read,,,0,mapr, +mapr.db.bloom_skips,gauge,,,,,0,mapr, +mapr.db.bucket_gets,gauge,,,,,0,mapr, +mapr.db.seg_creates,gauge,,,,,0,mapr, +mapr.db.spill_scans,gauge,,,,,0,mapr, +mapr.db.tablet_gets,gauge,,,,,0,mapr, +mapr.db.tablet_puts,gauge,,,,,0,mapr, +mapr.db.bucket_scans,gauge,,,,,0,mapr, +mapr.db.force_flushes,gauge,,,,,0,mapr, +mapr.db.bucket_writes,gauge,,,,,0,mapr, +mapr.db.scan_rablocks,gauge,,,,,0,mapr, +mapr.db.scan_raspills,gauge,,,,,0,mapr, +mapr.db.spill_creates,gauge,,,,,0,mapr, +mapr.db.spill_scanrows,gauge,,,,,0,mapr, +mapr.db.curfullcompacts,gauge,,operation,,,0,mapr, +mapr.db.scan_rasegments,gauge,,,,,0,mapr, +mapr.db.bucket_writebytes,gauge,,byte,,,0,mapr, +mapr.db.increment_currpcs,gauge,,,,,0,mapr, +mapr.db.tabletlookup_rpcs,gauge,,,,,0,mapr, +mapr.db.importsegment_rpcs,gauge,,,,,0,mapr, +mapr.db.scan_raadviseranges,gauge,,,,,0,mapr, +mapr.db.tabletlookup_currpcs,gauge,,,,,0,mapr, +mapr.db.importbucket_rpcs,gauge,,,,,0,mapr, +mapr.db.index.sent_bytes,gauge,,byte,,,0,mapr, +mapr.db.index.read_bytes,gauge,,byte,,,0,mapr, +mapr.db.log_compaction.sent_bytes,gauge,,byte,,,0,mapr, +mapr.db.log_compaction.pending_bytes,gauge,,byte,,,0,mapr, +mapr.io.write_bytes,gauge,,mebibyte,,The number of MB written to disk.,0,mapr, +mapr.io.writes,gauge,,write,,The number of MapR Filesystem disk write operations.,0,mapr, +mapr.io.reads,gauge,,read,,The number of MapR Filesystem disk read operations.,0,mapr, +mapr.io.read_bytes,gauge,,mebibyte,,The number of MB read from disk.,0,mapr, +mapr.process.vm,gauge,,mebibyte,,The amount of virtual memory in MB used by MapR processes.,0,mapr, +mapr.process.rss,gauge,,mebibyte,,The actual amount of memory in MB used by MapR processes.,0,mapr, +mapr.process.data,gauge,,mebibyte,,The amount memory in MB used by the data segments of MapR processes.,0,mapr, +mapr.process.cpu_percent,gauge,,percent,,The percentage of CPU used for MapR processes.,0,mapr, +mapr.process.mem_percent,gauge,,percent,,The percentage of total system memory (not capped by MapR processes) used for MapR processes.,0,mapr,mem_percent +mapr.process.cpu_time.syst,gauge,,second,,The amount of time measured in seconds that the process has been in kernel mode.,0,mapr, +mapr.process.cpu_time.user,gauge,,second,,The amount of time measured in seconds that the process has been in user mode,0,mapr, +mapr.process.disk_ops.read,gauge,,read,,The number of read operations for MapR processes.,0,mapr, +mapr.process.disk_ops.write,gauge,,write,,The number of write operations for MapR processes.,0,mapr, +mapr.process.disk_octets.read,gauge,,byte,,The number of bytes read from disk for MapR processes.,0,mapr, +mapr.process.disk_octets.write,gauge,,byte,,The number of bytes written to disk for MapR processes.,0,mapr, +mapr.process.page_faults.majflt,gauge,,error,,The number of major MapR process faults that required loading a memory page from disk.,0,mapr, +mapr.process.page_faults.minflt,gauge,,error,,The number of minor MapR process faults that required loading a memory page from disk.,0,mapr, +mapr.process.context_switch_voluntary,gauge,,process,,The number of voluntary context switches for MapR processes.,0,mapr, +mapr.process.context_switch_involuntary,gauge,,operation,,The number of involuntary context switches for MapR processes.,0,mapr, +mapr.streams.listen_msgs,gauge,,object,,The number of Streams messages read by the consumer.,0,mapr, +mapr.streams.listen_rpcs,gauge,,object,,The number of Streams consumer RPCs.,0,mapr, +mapr.streams.listen_bytes,gauge,,mebibyte,,The number of megabytes consumed by Streams messages.,0,mapr, +mapr.streams.produce_msgs,gauge,,object,,The number of Streams messages produced.,0,mapr, +mapr.streams.produce_rpcs,gauge,,object,,The number of Streams producer RPCs.,0,mapr, +mapr.streams.produce_bytes,gauge,,mebibyte,,The number of megabytes produced by Streams messages.,0,mapr, +mapr.streams.listen_currpcs,gauge,,object,,The number of concurrent Stream consumer RPCs.,0,mapr, +mapr.rpc.bytes_read,gauge,,byte,,The number of bytes received by the MapR Filesystem over RPC.,0,mapr, +mapr.rpc.bytes_sent,gauge,,byte,,The number of bytes sent by the MapR Filesystem over RPC.,0,mapr, +mapr.rpc.calls_recd,gauge,,message,,The number of RPC calls received by the MapR Filesystem.,0,mapr, +mapr.topology.utilization,gauge,,percent,, The aggregate percentage of CPU utilization.,0,mapr, +mapr.topology.disks_used_capacity,gauge,,gibibyte,,The amount disk space used in gigabytes.,0,mapr, +mapr.topology.disks_total_capacity,gauge,,gibibyte,,The disk capacity in gigabytes. ,0,mapr, diff --git a/mapr/requirements-dev.txt b/mapr/requirements-dev.txt index 98b5456bbd0e2..a234e3b22551e 100644 --- a/mapr/requirements-dev.txt +++ b/mapr/requirements-dev.txt @@ -1 +1,2 @@ +confluent_kafka -e ../datadog_checks_dev diff --git a/mapr/tests/common.py b/mapr/tests/common.py new file mode 100644 index 0000000000000..b17d72a78909b --- /dev/null +++ b/mapr/tests/common.py @@ -0,0 +1,22 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + + +INSTANCE = { + 'mapr_host': 'mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', + 'topic_path': '/var/mapr/mapr.monitoring/metricstreams', + 'whitelist': ['*'], + 'mapr_ticketfile_location': 'foo', +} + +KAFKA_METRIC = { + u'metric': u'mapr.process.context_switch_involuntary', + u'value': 6308, + u'tags': { + u'clustername': u'demo', + u'process_name': u'apiserver', + u'clusterid': u'7616098736519857348', + u'fqdn': u'mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', + }, +} diff --git a/mapr/tests/conftest.py b/mapr/tests/conftest.py index 102ba8a390950..08ea4fe8e32f3 100644 --- a/mapr/tests/conftest.py +++ b/mapr/tests/conftest.py @@ -1,8 +1,12 @@ # (C) Datadog, Inc. 2019 # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +from copy import deepcopy + import pytest +from . import common + @pytest.fixture(scope='session') def dd_environment(): @@ -11,4 +15,4 @@ def dd_environment(): @pytest.fixture def instance(): - return {} + return deepcopy(common.INSTANCE) diff --git a/mapr/tests/test_mapr.py b/mapr/tests/test_mapr.py index a00e550c070b7..b79daa009d212 100644 --- a/mapr/tests/test_mapr.py +++ b/mapr/tests/test_mapr.py @@ -1,11 +1,92 @@ # (C) Datadog, Inc. 2019 # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +import pytest + from datadog_checks.mapr import MaprCheck +from .common import KAFKA_METRIC + + +@pytest.mark.unit +def test_whitelist(instance): + instance['whitelist'] = ['fs.*', 'db.*'] + check = MaprCheck('mapr', {}, {}, [instance]) + + assert check.should_collect_metric('mapr.fs.read_cachemisses') + assert check.should_collect_metric('mapr.db.get_currpcs') + assert not check.should_collect_metric('mapr.cache.misses_largefile') + + +@pytest.mark.unit +def test_submit_gauge(instance, aggregator): + check = MaprCheck('mapr', {}, {}, [instance]) + check.submit_metric(KAFKA_METRIC, []) + + aggregator.assert_metric( + 'mapr.process.context_switch_involuntary', + value=6308, + tags=[ + 'clustername:demo', + 'process_name:apiserver', + 'clusterid:7616098736519857348', + 'fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', + ], + ) + + +@pytest.mark.unit +def test_submit_gauge_additional_tags(instance, aggregator): + check = MaprCheck('mapr', {}, {}, [instance]) + check.submit_metric(KAFKA_METRIC, ['foo:bar', 'baz:biz']) + + aggregator.assert_metric( + 'mapr.process.context_switch_involuntary', + tags=[ + 'clustername:demo', + 'process_name:apiserver', + 'clusterid:7616098736519857348', + 'fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', + 'foo:bar', + 'baz:biz', + ], + ) + + +@pytest.mark.unit +def test_submit_bucket(instance, aggregator): + kafka_metric = { + "metric": "mapr.db.table.latency", + "buckets": {"2,5": 10, "5,10": 21}, + "tags": { + "table_fid": "2070.36.262534", + "table_path": "/var/mapr/mapr.monitoring/tsdb", + "noindex": "//primary", + "rpc_type": "put", + "fqdn": "mapr-lab-2-ghs6.c.datadog-integrations-lab.internal", + "clusterid": "7616098736519857348", + "clustername": "demo", + }, + } + check = MaprCheck('mapr', {}, {}, [instance]) + check.submit_metric(kafka_metric, []) + expected_tags = [ + "clusterid:7616098736519857348", + "clustername:demo", + "fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal", + "noindex://primary", + "rpc_type:put", + "table_fid:2070.36.262534", + "table_path:/var/mapr/mapr.monitoring/tsdb", + ] + + aggregator.assert_histogram_bucket('mapr.db.table.latency', 10, 2, 5, True, 'stubbed.hostname', expected_tags) + aggregator.assert_histogram_bucket('mapr.db.table.latency', 21, 5, 10, True, 'stubbed.hostname', expected_tags) + aggregator.assert_all_metrics_covered() # No metrics submitted + def test_check(aggregator, instance): - check = MaprCheck('mapr', {}, {}) + check = MaprCheck('mapr', {}, {}, [instance]) check.check(instance) aggregator.assert_all_metrics_covered() From 067a4107ef425fe9b464cdf85ecf840847a57025 Mon Sep 17 00:00:00 2001 From: Julia <611228+hithwen@users.noreply.github.com> Date: Mon, 26 Aug 2019 12:17:25 +0200 Subject: [PATCH 03/19] Apply suggestions from code reviews Co-Authored-By: ruthnaebeck <19349244+ruthnaebeck@users.noreply.github.com> --- mapr/README.md | 29 +++++++------- .../mapr/data/conf.yaml.example | 8 ++-- mapr/manifest.json | 4 +- mapr/metadata.csv | 38 +++++++++---------- 4 files changed, 41 insertions(+), 38 deletions(-) diff --git a/mapr/README.md b/mapr/README.md index 18e4e6d1d0131..d52ae5edf8711 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -1,8 +1,8 @@ -# Agent Check: mapr +# Agent Check: MapR ## Overview -This check monitors [mapr][1] through the Datadog Agent. +This check monitors [MapR][1] through the Datadog Agent. ## Setup @@ -10,21 +10,26 @@ Follow the instructions below to install and configure this check for an Agent r ### Installation -The mapr check is included in the [Datadog Agent][2] package. However, to be able to run it you will need to perform the following steps: +The MapR check is included in the [Datadog Agent][2] package. However, additional installation steps are necessary: -1. Download and extract the [MapR Client][12] -2. Update `LD_LIBRARY_PATH` and `DYLD_LIBRARY_PATH` as explained [here][9] (usually with `/opt/mapr/lib/)` -3. Set `JAVA_HOME` (if running on macos you will need to install system java) +1. Download and extract the [MapR Client][12]. +2. Update `LD_LIBRARY_PATH` and `DYLD_LIBRARY_PATH` as explained in the [MapR documentation][9] (usually with `/opt/mapr/lib/)`. +3. Set `JAVA_HOME` (if you are running on macOS install system Java). 3. Install the [mapr-streams-python][7] library. -4. Create a password for the `dd-agent` user and have this user in every node of the cluster with the same `UID`/`GID` so that it is recognized by mapr. See [Managing users and groups][10]. -5. If security is enabled on the cluster (recommended), generate a [long-lived ticket][8] for this user. +4. Create a password for the `dd-agent` user, then add this user to every node of the cluster with the same `UID`/`GID` so it is recognized by MapR. See [Managing users and groups][10] for additional details. +5. If security is enabled on the cluster (recommended), generate a [long-lived ticket][8] for the `dd-agent` user. ### Configuration +#### Metric collection -1. Edit the `mapr.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to start collecting your mapr performance data. See the [sample mapr.d/conf.yaml][3] for all available configuration options. +1. Edit the `mapr.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to collect your MapR performance data. See the [sample mapr.d/conf.yaml][3] for all available configuration options. 2. [Restart the Agent][4]. +#### Log collection + + MapR uses fluentD for logs. Use the [fluentd datadog plugin][11] to collect MapR logs. + ### Validation [Run the Agent's status subcommand][5] and look for `mapr` under the Checks section. @@ -37,15 +42,13 @@ See [metadata.csv][13] for a list of default metrics provided by this integratio ### Service Checks -mapr does not include any service checks. +The MapR check does not include any service checks. ### Events -mapr does not include any events. +The MapR check does not include any events. -### Logs -MapR uses fluentD for logs. You can use [fluentd datadog plugin][11] to collect mapr logs. ## Troubleshooting diff --git a/mapr/datadog_checks/mapr/data/conf.yaml.example b/mapr/datadog_checks/mapr/data/conf.yaml.example index c94b26971cd92..31efc8462e61e 100644 --- a/mapr/datadog_checks/mapr/data/conf.yaml.example +++ b/mapr/datadog_checks/mapr/data/conf.yaml.example @@ -2,12 +2,12 @@ init_config: instances: ## @param hostname - string - required - ## The mapR host to monitor. + ## The MapR host to monitor. # - mapr_host: ## @param topic_path - string - required - ## The mapR topic path + ## The MapR topic path. # topic_path: /var/mapr/mapr.monitoring/metricstreams @@ -18,13 +18,13 @@ instances: - fs.* ## @param mapr_ticketfile_location - string - optional - ## The path to the mapR user ticket, if included it will override the MAPR_TICKETFILE_LOCATION environment variable. + ## The path to the MapR user ticket, if included it overrides the MAPR_TICKETFILE_LOCATION environment variable. ## Either the environment variable or this config option needs to be set if security is enabled on the cluster. # # mapr_ticketfile_location: ## @param tags - list of key:value elements - optional - ## List of tags to attach to every metric, event and service check emitted by this integration. + ## A list of tags to attach to every metric, event, and service check emitted by this integration. ## ## Learn more about tagging: https://docs.datadoghq.com/tagging/ # diff --git a/mapr/manifest.json b/mapr/manifest.json index a3d530bce65e0..d14ce57ed0bc2 100644 --- a/mapr/manifest.json +++ b/mapr/manifest.json @@ -14,9 +14,9 @@ "mac_os", "windows" ], - "public_title": "Datadog-mapr Integration", + "public_title": "Datadog-MapR Integration", "categories": [ - "" + "data-store" ], "type": "check", "is_public": false, diff --git a/mapr/metadata.csv b/mapr/metadata.csv index 724510058e622..d69aee9768406 100644 --- a/mapr/metadata.csv +++ b/mapr/metadata.csv @@ -2,23 +2,23 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation mapr.fs.reads,gauge,,read,,The number of remote reads.,0,mapr, mapr.fs.writes,gauge,,write,,The number of remote writes.,0,mapr, mapr.fs.read_bytes,gauge,,mebibyte,,The amount of data read remotely in MB.,0,mapr, -mapr.fs.bulk_writes,gauge,,write,,The number of bulk-write operations. Bulk-write operations occur when the MapR Filesystem container master aggregates multiple small file writes from one or more clients into one big RPC before replicating the writes.,0,mapr, -mapr.fs.local_reads,gauge,,read,,The number of file read operations by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, +mapr.fs.bulk_writes,gauge,,write,,The number of bulk-write operations. Bulk-write operations occur when the MapR filesystem container master aggregates multiple file writes from one or more clients into one RPC before replicating the writes.,0,mapr, +mapr.fs.local_reads,gauge,,read,,The number of file read operations by applications that are running on the MapR filesystem node.,0,mapr, mapr.fs.write_bytes,gauge,,mebibyte,,The amount of data written remotely in MB.,0,mapr, -mapr.fs.kvstore_scan,gauge,,operation,,The number of scan operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, -mapr.fs.local_readbytes,gauge,,byte,,The number of bytes read by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, -mapr.fs.local_writes,gauge,,operation,,The number of file write operations by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, -mapr.fs.kvstore_delete,gauge,,operation,,The number of delete operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, -mapr.fs.kvstore_insert,gauge,,operation,,The number of insert operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, -mapr.fs.kvstore_lookup,gauge,,operation,,The number of lookup operations on key-value store files which are used by the CLDB and MapR Database.,0,mapr, -mapr.fs.read_cachehits,gauge,,hit,,The number of cache hits for file reads. This value includes pages that MapR Filesystem populates using readahead mechanism.,0,mapr, -mapr.fs.bulk_writesbytes,gauge,,byte,,The number of bytes written by bulk-write operations. Bulk-write operations occur when the MapR Filesystem container master aggregates multiple small file writes from one or more clients into one big RPC before replicating the writes.,0,mapr, +mapr.fs.kvstore_scan,gauge,,operation,,The number of scan operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.local_readbytes,gauge,,byte,,The number of bytes read by applications that are running on the MapR filesystem node.,0,mapr, +mapr.fs.local_writes,gauge,,operation,,The number of file write operations by applications that are running on the MapR filesystem node.,0,mapr, +mapr.fs.kvstore_delete,gauge,,operation,,The number of delete operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.kvstore_insert,gauge,,operation,,The number of insert operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.kvstore_lookup,gauge,,operation,,The number of lookup operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.read_cachehits,gauge,,hit,,The number of cache hits for file reads. This value includes pages that the MapR filesystem populates using readahead mechanism.,0,mapr, +mapr.fs.bulk_writesbytes,gauge,,byte,,The number of bytes written by bulk-write operations. Bulk-write operations occur when the MapR filesystem container master aggregates multiple file writes from one or more clients into one RPC before replicating the writes.,0,mapr, mapr.fs.read_cachemisses,gauge,,miss,,The number of cache misses for file read operations.,0,mapr, mapr.fs.statstype_create,gauge,,operation,,The number of file create operations.,0,mapr, mapr.fs.statstype_lookup,gauge,,operation,,The number of lookup operations.,0,mapr, mapr.fs.statstype_read,gauge,,read,,The number of file read operations.,0,mapr, mapr.fs.statstype_write,gauge,,write,,The number of file write operations.,0,mapr, -mapr.fs.local_writebytes,gauge,,byte,,The number of bytes written by applications that are running on the MapR Filesystem node where the data resides.,0,mapr, +mapr.fs.local_writebytes,gauge,,byte,,The number of bytes written by applications that are running on the MapR filesystem node.,0,mapr, mapr.cache.misses_dir,gauge,,miss,,The number of cache misses on the table LRU cache.,0,mapr, mapr.cache.lookups_dir,gauge,,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, mapr.cache.misses_data,gauge,,miss,,The number of cache misses in the block cache.,0,mapr, @@ -31,11 +31,11 @@ mapr.cache.lookups_inode,gauge,,,,The number of cache lookups in the inode cache mapr.cache.lookups_table,gauge,,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, mapr.cache.misses_largefile,gauge,,miss,,The number of cache misses on the large file LRU cache.,0,mapr, mapr.cache.misses_smallfile,gauge,,miss,,The number of cache misses on the small file LRU cache.,0,mapr, -mapr.cache.lookups_largefile,gauge,,operation,,The number of cache lookups in the large file LRU cache. The large file LRU is used for storing files with size greater than 64K and also MapR Database data pages.,0,mapr, -mapr.cache.lookups_smallfile,gauge,,operation,,The number of cache lookups on the small file LRU cache. This LRU is used for storing files with size less than 64K and also MapR Database index pages.,0,mapr, -mapr.db.flushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the bucket size exceeds a threshold,0,mapr, -mapr.db.forceflushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the in-memory bucket file cache fills up,0,mapr, -mapr.db.get_rpcs,gauge,,operation,,The number of MapR Database get RPCs completed,0,mapr, +mapr.cache.lookups_largefile,gauge,,operation,,The number of cache lookups in the large file LRU cache. The large file LRU is used for storing files with size greater than 64K and MapR database data pages.,0,mapr, +mapr.cache.lookups_smallfile,gauge,,operation,,The number of cache lookups on the small file LRU cache. This LRU is used for storing files with size less than 64K and MapR database index pages.,0,mapr, +mapr.db.flushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the bucket size exceeds a threshold.,0,mapr, +mapr.db.forceflushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the in-memory bucket file cache fills up.,0,mapr, +mapr.db.get_rpcs,gauge,,operation,,The number of MapR database get RPCs completed,0,mapr, mapr.db.get_bytes,gauge,,byte,,The number of bytes read by get RPCs,0,mapr, mapr.db.put_bytes,gauge,,byte,,The number of bytes written by put RPCs,0,mapr, mapr.db.scan_rpcs,gauge,,operation,,The number of MapR Database scan RPCs completed,0,mapr, @@ -142,8 +142,8 @@ mapr.streams.produce_rpcs,gauge,,object,,The number of Streams producer RPCs.,0, mapr.streams.produce_bytes,gauge,,mebibyte,,The number of megabytes produced by Streams messages.,0,mapr, mapr.streams.listen_currpcs,gauge,,object,,The number of concurrent Stream consumer RPCs.,0,mapr, mapr.rpc.bytes_read,gauge,,byte,,The number of bytes received by the MapR Filesystem over RPC.,0,mapr, -mapr.rpc.bytes_sent,gauge,,byte,,The number of bytes sent by the MapR Filesystem over RPC.,0,mapr, -mapr.rpc.calls_recd,gauge,,message,,The number of RPC calls received by the MapR Filesystem.,0,mapr, -mapr.topology.utilization,gauge,,percent,, The aggregate percentage of CPU utilization.,0,mapr, +mapr.rpc.bytes_sent,gauge,,byte,,The number of bytes sent by the MapR filesystem over RPC.,0,mapr, +mapr.rpc.calls_recd,gauge,,message,,The number of RPC calls received by the MapR filesystem.,0,mapr, +mapr.topology.utilization,gauge,,percent,,The aggregate percentage of CPU utilization.,0,mapr, mapr.topology.disks_used_capacity,gauge,,gibibyte,,The amount disk space used in gigabytes.,0,mapr, mapr.topology.disks_total_capacity,gauge,,gibibyte,,The disk capacity in gigabytes. ,0,mapr, From f9b1b443df29fc599bf1e84367b0072f274cb64c Mon Sep 17 00:00:00 2001 From: "florian.veaux" Date: Tue, 10 Sep 2019 09:06:31 -0400 Subject: [PATCH 04/19] Doc and test updates --- mapr/README.md | 64 +- mapr/assets/service_checks.json | 12 +- mapr/datadog_checks/mapr/common.py | 171 +++ .../mapr/data/conf.yaml.example | 34 +- mapr/datadog_checks/mapr/mapr.py | 174 +-- mapr/datadog_checks/mapr/utils.py | 22 + mapr/manifest.json | 14 +- mapr/metadata.csv | 305 ++--- mapr/tests/common.py | 224 +++- mapr/tests/conftest.py | 22 + mapr/tests/fixtures/metrics.txt | 1003 +++++++++++++++++ mapr/tests/test_mapr.py | 92 -- mapr/tests/test_unit.py | 113 ++ 13 files changed, 1902 insertions(+), 348 deletions(-) create mode 100644 mapr/datadog_checks/mapr/common.py create mode 100644 mapr/datadog_checks/mapr/utils.py create mode 100644 mapr/tests/fixtures/metrics.txt delete mode 100644 mapr/tests/test_mapr.py create mode 100644 mapr/tests/test_unit.py diff --git a/mapr/README.md b/mapr/README.md index d52ae5edf8711..cd68396e54a19 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -2,22 +2,22 @@ ## Overview -This check monitors [MapR][1] through the Datadog Agent. +This check monitors [MapR][1] 6.1+ through the Datadog Agent. ## Setup -Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the [Autodiscovery Integration Templates][2] for guidance on applying these instructions. +Follow the instructions below to install and configure this check for an Agent running on a host. ### Installation -The MapR check is included in the [Datadog Agent][2] package. However, additional installation steps are necessary: +The MapR check is included in the [Datadog Agent][2] package but requires additional setup operations. + +1. Add `/opt/mapr/lib/` to your `ld.so.conf` file. The agent uses the mapr-streams-python library which requires access to some shared libraries. +2. Create a password for the `dd-agent` user, then add this user to every node of the cluster with the same `UID`/`GID` so it is recognized by MapR. See [Managing users and groups][10] for additional details. +3. Install the agent on every host you want to monitor. +4. Generate a [long-lived ticket][8] for the `dd-agent` user. +5. Make sure the ticket is readable by the `dd-agent` user. -1. Download and extract the [MapR Client][12]. -2. Update `LD_LIBRARY_PATH` and `DYLD_LIBRARY_PATH` as explained in the [MapR documentation][9] (usually with `/opt/mapr/lib/)`. -3. Set `JAVA_HOME` (if you are running on macOS install system Java). -3. Install the [mapr-streams-python][7] library. -4. Create a password for the `dd-agent` user, then add this user to every node of the cluster with the same `UID`/`GID` so it is recognized by MapR. See [Managing users and groups][10] for additional details. -5. If security is enabled on the cluster (recommended), generate a [long-lived ticket][8] for the `dd-agent` user. ### Configuration #### Metric collection @@ -28,8 +28,35 @@ The MapR check is included in the [Datadog Agent][2] package. However, additiona #### Log collection - MapR uses fluentD for logs. Use the [fluentd datadog plugin][11] to collect MapR logs. - +MapR uses fluentD for logs. Use the [fluent datadog plugin][11] to collect MapR logs. +The following command will download and install the plugin into the right directory. + +`curl https://raw.githubusercontent.com/DataDog/fluent-plugin-datadog/master/lib/fluent/plugin/out_datadog.rb -o /opt/mapr/fluentd/fluentd-/lib/fluentd--linux-x86_64/lib/app/lib/fluent/plugin/out_datadog.rb` + +Then update the `/opt/mapr/fluentd/fluentd-/etc/fluentd/fluentd.conf` with the following section. + +``` + + @type copy + # This section is here by default and sends the logs to ElasticCache for Kibana. + @include /opt/mapr/fluentd/fluentd-1.4.0/etc/fluentd/es_config.conf + include_tag_key true + tag_key service_name + + # This new section also forwards the logs to Datadog + @type datadog + @id dd_agent + include_tag_key true + dd_source mapr + dd_tags "flo:test" + service + api_key + +``` + +Refer to [fluent_datadog_plugin][11] documentation for more details about the option you can use. + + ### Validation [Run the Agent's status subcommand][5] and look for `mapr` under the Checks section. @@ -42,30 +69,29 @@ See [metadata.csv][13] for a list of default metrics provided by this integratio ### Service Checks -The MapR check does not include any service checks. +- `mapr.can_connect`: +Returns CRITICAL if the Agent fails to connect to the MapR monitoring streams, otherwise returns UP. ### Events The MapR check does not include any events. - - - ## Troubleshooting Need help? Contact [Datadog support][6]. [1]: https://mapr.com -[2]: https://docs.datadoghq.com/agent/autodiscovery/integrations +[2]: https://app.datadoghq.com/account/settings#agent [3]: https://github.com/DataDog/integrations-core/blob/master/mapr/datadog_checks/mapr/data/conf.yaml.example [4]: https://docs.datadoghq.com/agent/guide/agent-commands/?tab=agentv6#start-stop-and-restart-the-agent [5]: https://docs.datadoghq.com/agent/guide/agent-commands/?tab=agentv6#agent-status-and-information [6]: https://docs.datadoghq.com/help -[7]: https://mapr.com/docs/52/MapR_Streams/MapRStreamsPythonExample.html -[8]: https://docs.datadoghq.com/integrations/oracle/ +[7]: https://mapr.com/docs/61/MapR_Streams/MapRStreamsPythonExample.html +[8]: https://mapr.com/docs/61/SecurityGuide/GeneratingServiceTicket.html [9]: https://mapr.com/docs/60/MapR_Streams/MapRStreamCAPISetup.html [10]: https://mapr.com/docs/61/AdministratorGuide/c-managing-users-and-groups.html [11]: https://www.rubydoc.info/gems/fluent-plugin-datadog [12]: https://mapr.com/docs/61/AdvancedInstallation/SettingUptheClient-install-mapr-client.html [13]: https://github.com/DataDog/integrations-core/blob/master/mapr/metadata.csv - +[14]: http://upstart.ubuntu.com/cookbook/#environment-variables +[15]: https://www.freedesktop.org/software/systemd/man/systemd.service.html#Command%20lines diff --git a/mapr/assets/service_checks.json b/mapr/assets/service_checks.json index fe51488c7066f..1e58e351726c4 100644 --- a/mapr/assets/service_checks.json +++ b/mapr/assets/service_checks.json @@ -1 +1,11 @@ -[] +[ + { + "agent_version": "6.15.0", + "integration":"mapr", + "check": "mapr.can_connect", + "statuses": ["ok", "critical"], + "groups": ["topic"], + "name": "Can connect and subscribe to mapr topic", + "description": "Returns `CRITICAL` if the agent fails to subscribe to the stream topic, `OK` otherwise." + } +] diff --git a/mapr/datadog_checks/mapr/common.py b/mapr/datadog_checks/mapr/common.py new file mode 100644 index 0000000000000..d18a59c8b33b6 --- /dev/null +++ b/mapr/datadog_checks/mapr/common.py @@ -0,0 +1,171 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +COUNT_METRICS = { + 'mapr.cache.lookups_data', + 'mapr.cache.lookups_dir', + 'mapr.cache.lookups_inode', + 'mapr.cache.lookups_largefile', + 'mapr.cache.lookups_meta', + 'mapr.cache.lookups_smallfile', + 'mapr.cache.lookups_table', + 'mapr.cache.misses_data', + 'mapr.cache.misses_dir', + 'mapr.cache.misses_inode', + 'mapr.cache.misses_largefile', + 'mapr.cache.misses_meta', + 'mapr.cache.misses_smallfile', + 'mapr.cache.misses_table', + 'mapr.cldb.rpc_received', + 'mapr.cldb.rpcs_failed', + 'mapr.db.append_bytes', + 'mapr.db.append_rpcrows', + 'mapr.db.append_rpcs', + 'mapr.db.cdc.sent_bytes', + 'mapr.db.checkandput_bytes', + 'mapr.db.checkandput_rpcrows', + 'mapr.db.checkandput_rpcs', + 'mapr.db.flushes', + 'mapr.db.forceflushes', + 'mapr.db.fullcompacts', + 'mapr.db.get_bytes', + 'mapr.db.get_readrows', + 'mapr.db.get_resprows', + 'mapr.db.get_rpcs', + 'mapr.db.increment_bytes', + 'mapr.db.increment_rpcrows', + 'mapr.db.increment_rpcs', + 'mapr.db.minicompacts', + 'mapr.db.put_bytes', + 'mapr.db.put_readrows', + 'mapr.db.put_rpcrows', + 'mapr.db.put_rpcs', + 'mapr.db.repl.sent_bytes', + 'mapr.db.scan_bytes', + 'mapr.db.scan_readrows', + 'mapr.db.scan_resprows', + 'mapr.db.scan_rpcs', + 'mapr.db.table.read_bytes', + 'mapr.db.table.read_rows', + 'mapr.db.table.resp_rows', + 'mapr.db.table.rpcs', + 'mapr.db.table.value_cache_hits', + 'mapr.db.table.value_cache_lookups', + 'mapr.db.table.write_bytes', + 'mapr.db.table.write_rows', + 'mapr.db.ttlcompacts', + 'mapr.db.updateandget_bytes', + 'mapr.db.updateandget_rpcrows', + 'mapr.db.updateandget_rpcs', + 'mapr.db.valuecache_hits', + 'mapr.db.valuecache_lookups', + 'mapr.drill.queries_completed', + 'mapr.fs.bulk_writes', + 'mapr.fs.bulk_writesbytes', + 'mapr.fs.kvstore_delete', + 'mapr.fs.kvstore_insert', + 'mapr.fs.kvstore_lookup', + 'mapr.fs.kvstore_scan', + 'mapr.fs.local_readbytes', + 'mapr.fs.local_reads', + 'mapr.fs.local_writebytes', + 'mapr.fs.local_writes', + 'mapr.fs.read_bytes', + 'mapr.fs.read_cachehits', + 'mapr.fs.read_cachemisses', + 'mapr.fs.reads', + 'mapr.fs.statstype_create', + 'mapr.fs.statstype_lookup', + 'mapr.fs.statstype_read', + 'mapr.fs.statstype_write', + 'mapr.fs.write_bytes', + 'mapr.fs.writes', + 'mapr.io.write_bytes', + 'mapr.io.writes', + 'mapr.rpc.bytes_recd', + 'mapr.rpc.bytes_sent', + 'mapr.rpc.calls_recd', + 'mapr.streams.listen_bytes', + 'mapr.streams.listen_msgs', + 'mapr.streams.listen_rpcs', + 'mapr.streams.produce_bytes', + 'mapr.streams.produce_msgs', + 'mapr.streams.produce_rpcs', + 'mapr.volmetrics.read_ops', + 'mapr.volmetrics.write_ops', +} + +MONOTONIC_COUNTER_METRICS = { + 'mapr.cldb.containers_created', + 'mapr.process.context_switch_involuntary', + 'mapr.process.context_switch_voluntary', + 'mapr.process.cpu_time.syst', + 'mapr.process.cpu_time.user', + 'mapr.process.disk_octets.read', + 'mapr.process.disk_octets.write', + 'mapr.process.disk_ops.read', + 'mapr.process.disk_ops.write', + 'mapr.process.page_faults.majflt', + 'mapr.process.page_faults.minflt', +} + +GAUGE_METRICS = { + 'mapr.alarms.alarm_raised', + 'mapr.cldb.cluster_cpu_total', + 'mapr.cldb.cluster_cpubusy_percent', + 'mapr.cldb.cluster_disk_capacity', + 'mapr.cldb.cluster_diskspace_used', + 'mapr.cldb.cluster_memory_capacity', + 'mapr.cldb.cluster_memory_used', + 'mapr.cldb.containers', + 'mapr.cldb.containers_unusable', + 'mapr.cldb.disk_space_available', + 'mapr.cldb.nodes_in_cluster', + 'mapr.cldb.nodes_offline', + 'mapr.cldb.storage_pools_cluster', + 'mapr.cldb.storage_pools_offline', + 'mapr.cldb.volumes', + 'mapr.db.cdc.pending_bytes', + 'mapr.db.get_currpcs', + 'mapr.db.index.pending_bytes', + 'mapr.db.put_currpcs', + 'mapr.db.repl.pending_bytes', + 'mapr.db.scan_currpcs', + 'mapr.db.table.latency', + 'mapr.db.valuecache_usedSize', + 'mapr.drill.allocator_root_peak', + 'mapr.drill.allocator_root_used', + 'mapr.drill.blocked_count', + 'mapr.drill.count', + 'mapr.drill.fd_usage', + 'mapr.drill.fragments_running', + 'mapr.drill.heap_used', + 'mapr.drill.non_heap_used', + 'mapr.drill.queries_running', + 'mapr.drill.runnable_count', + 'mapr.drill.waiting_count', + 'mapr.io.read_bytes', + 'mapr.io.reads', + 'mapr.process.cpu_percent', + 'mapr.process.data', + 'mapr.process.mem_percent', + 'mapr.process.rss', + 'mapr.process.vm', + 'mapr.status.ok', + 'mapr.streams.listen_currpcs', + 'mapr.topology.disks_total_capacity', + 'mapr.topology.disks_used_capacity', + 'mapr.topology.utilization', + 'mapr.volmetrics.read_latency', + 'mapr.volmetrics.read_throughput', + 'mapr.volmetrics.write_latency', + 'mapr.volmetrics.write_throughput', + 'mapr.volume.logical_used', + 'mapr.volume.quota', + 'mapr.volume.snapshot_used', + 'mapr.volume.total_used', + 'mapr.volume.used', +} + +ALLOWED_METRICS = GAUGE_METRICS.union(COUNT_METRICS).union(MONOTONIC_COUNTER_METRICS) diff --git a/mapr/datadog_checks/mapr/data/conf.yaml.example b/mapr/datadog_checks/mapr/data/conf.yaml.example index 31efc8462e61e..a9d5823e4d3c4 100644 --- a/mapr/datadog_checks/mapr/data/conf.yaml.example +++ b/mapr/datadog_checks/mapr/data/conf.yaml.example @@ -1,27 +1,39 @@ init_config: instances: - ## @param hostname - string - required - ## The MapR host to monitor. + - + ## @param hostname - string - optional - default: `socket.getfqdn()` + ## The MapR host to monitor. This is used to find the correct topic to read metrics from. + ## https://mapr.com/docs/61/AdministratorGuide/spyglass-on-streams.html # - - mapr_host: + # hostname: - ## @param topic_path - string - required + ## @param stream_path - string - optional - default: /var/mapr/mapr.monitoring/metricstreams ## The MapR topic path. # - topic_path: /var/mapr/mapr.monitoring/metricstreams + # stream_path: /var/mapr/mapr.monitoring/metricstreams - ## @param whitelist - list - required - ## List regexes of metrics to collect. They will be prefixed with `mapr.` + ## @param streams_count - integer - optional - default: 2 + ## The mapr setting for the number of monitoring streams. + ## If this value does not exactly match what you've configured on mapr, + ## the integration will not be able to find the correct topic to read metrics from. + ## See https://mapr.com/docs/61/AdministratorGuide/spyglass-on-streams.html for more information # - whitelist: - - fs.* + # streams_count: 2 - ## @param mapr_ticketfile_location - string - optional + ## @param metric_whitelist - list - optional + ## List of regexes for metrics to collect. Note that you can only collect metrics starting with "mapr.", + ## see https://github.com/DataDog/integrations-core/blob/master/mapr/datadog_checks/mapr/common.py + ## for the list of metrics you can collect. + ## Collect all mapr related metrics by default + # + # metric_whitelist: ['.*'] + + ## @param ticket_location - string - optional ## The path to the MapR user ticket, if included it overrides the MAPR_TICKETFILE_LOCATION environment variable. ## Either the environment variable or this config option needs to be set if security is enabled on the cluster. # - # mapr_ticketfile_location: + # ticket_location: ## @param tags - list of key:value elements - optional ## A list of tags to attach to every metric, event, and service check emitted by this integration. diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py index 8641523e8d8ab..5bb6c9fcc8cc9 100644 --- a/mapr/datadog_checks/mapr/mapr.py +++ b/mapr/datadog_checks/mapr/mapr.py @@ -7,101 +7,147 @@ from six import iteritems -from datadog_checks.base import AgentCheck +from datadog_checks.base import AgentCheck, ensure_unicode +from datadog_checks.base.errors import CheckException + +from .common import ALLOWED_METRICS, COUNT_METRICS, GAUGE_METRICS, MONOTONIC_COUNTER_METRICS +from .utils import get_fqdn, get_stream_id_for_topic try: - # This should be `confluent_kafka` but made by mapr! - from confluent_kafka import Consumer, KafkaError -except ImportError as e: - print("Unable to import library `confluent_kafka`, make sure it is installed and LD_LIBRARY_PATH is set correctly") - raise e - # on our infra you can run - # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mapr/lib:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre/lib/amd64/server/ # noqa + # The `confluent_kafka` library here is the one made by mapr + import confluent_kafka as ck +except ImportError: + ck = None + + +DEFAULT_STREAM_PATH = "/var/mapr/mapr.monitoring/metricstreams" +METRICS_SUBMITTED_METRIC_NAME = "mapr.metrics.submitted" +SERVICE_CHECK = "mapr.can_connect" + +""" +All mapr metrics go through a Stream topic (similar to a Kafka topic) and are consumed by OpenTSDB, a timeserie +database. +All the metrics are distributed over multiple topics, one for each host. This way, the check instance can subscribe +to the topic relevant to the current host and consume everything. + +Note: The MapR documentation https://mapr.com/docs/61/AdministratorGuide/spyglass-on-streams.html states that +there is one topic per host per metric name. This is wrong starting with 6.1+, there is only one topic per host now. +To support older versions of MapR, the check should be updated to subscribe those multiple topics. +""" class MaprCheck(AgentCheck): - def __init__(self, name, init_config, agentConfig, instances): - super(MaprCheck, self).__init__(name, init_config, agentConfig, instances) + def __init__(self, name, init_config, instances): + super(MaprCheck, self).__init__(name, init_config, instances) self._conn = None - self.mapr_host = instances[0]['mapr_host'] - self.topic_path = instances[0]['topic_path'] - self.allowed_metrics = [re.compile('mapr.{}'.format(w)) for w in instances[0]['whitelist']] + self.hostname = self.instance.get('hostname', get_fqdn()) + self.streams_count = self.instance.get('streams_count', 2) + self.topic_path = "{stream_path}/{stream_id}:{topic_name}".format( + stream_path=self.instance.get('stream_path', DEFAULT_STREAM_PATH), + stream_id=get_stream_id_for_topic(self.hostname, rng=self.streams_count), + topic_name=self.hostname, + ) + self.allowed_metrics = [re.compile(w) for w in self.instance.get('metric_whitelist', [])] + self.base_tags = self.instance.get('tags', []) + self.is_first_check_run = True - mapr_ticketfile_location = instances[0].get('mapr_ticketfile_location') - if mapr_ticketfile_location: - os.environ['MAPR_TICKETFILE_LOCATION'] = mapr_ticketfile_location + auth_ticket = self.instance.get('ticket_location') + if auth_ticket: + os.environ['MAPR_TICKETFILE_LOCATION'] = auth_ticket elif not os.environ.get('MAPR_TICKETFILE_LOCATION'): - self.log.debug( - "MAPR_TICKETFILE_LOCATION environment variable not set, this may cause authentication issues" + self.log.info("MAPR_TICKETFILE_LOCATION environment variable not set, this may cause authentication issues") + + def check(self, _): + if ck is None: + raise CheckException( + "confluent_kafka was not imported correctly, make sure the library is installed and that you've " + "set LD_LIBRARY_PATH correctly. Please refer to datadog documentation for more details." ) - def check(self, instance): - tags = instance.get('tags', []) + try: + conn = self.get_connection() + except Exception: + self.service_check( + SERVICE_CHECK, AgentCheck.CRITICAL, self.base_tags + ['topic_path:{}'.format(self.topic_path)] + ) + raise + + submitted_metrics_count = 0 + while True: - m = self.conn.poll(timeout=1.0) - if m is None: + msg = conn.poll(timeout=0.5) + if msg is None: # Timed out, no more messages break - if m.error() is None: + + if msg.error() is None: # Metric received try: - kafka_metric = json.loads(m.value().decode('utf-8'))[0] - self.submit_metric(kafka_metric, tags) + metric = json.loads(ensure_unicode(msg.value()))[0] + metric_name = metric['metric'] + if self.should_collect_metric(metric_name): + # Will sometimes submit the same metric multiple time, but because it's only + # gauges and monotonic_counter that's fine. + self.submit_metric(metric) + submitted_metrics_count += 1 except Exception as e: - self.log.error("Received unexpected message %s, it wont be processed", m.value()) + self.log.warning("Received unexpected message %s, wont be processed", msg.value()) self.log.exception(e) - elif m.error().code() != KafkaError._PARTITION_EOF: + elif msg.error().code() != ck.KafkaError._PARTITION_EOF: # Real error happened - self.log.error(m.error()) - break - else: - self.log.debug(m.error()) - - @staticmethod - def get_stream_id(topic_name, rng=2): - """To distribute load, all the topics are not in the same stream. Each topic named is hashed - to obtain an id which is in turn the name of the stream""" - h = 5381 - for c in topic_name: - h = ((h << 5) + h) + ord(c) - return abs(h % rng) - - @property - def conn(self): + raise CheckException(msg.error()) + + if not submitted_metrics_count and not self.is_first_check_run: + self.log.error("No metric to fetch in topic {}. Double-check the topic name and path", self.topic_path) + + self.gauge(METRICS_SUBMITTED_METRIC_NAME, submitted_metrics_count, self.base_tags) + self.service_check(SERVICE_CHECK, AgentCheck.OK, self.base_tags + ['topic:{}'.format(self.topic_path)]) + self.is_first_check_run = False + + def get_connection(self): if self._conn: return self._conn - topic_name = self.mapr_host # According to docs we should append the metric name. - stream_id = MaprCheck.get_stream_id(topic_name, rng=2) - - topic_path = "{}:{}".format(os.path.join(self.topic_path, str(stream_id)), topic_name) - self._conn = Consumer( + self._conn = ck.Consumer( { "group.id": "dd-agent", # uniquely identify this consumer - "enable.auto.commit": False # important, we don't need to store the offset for this consumer, - # and if we do it just once the mapr library has a bug which prevents reading from the head + "enable.auto.commit": False # important, do not store the offset for this consumer, + # if we do it just once the mapr library has a bug (feature?) which prevents resetting it to the head } ) - self._conn.subscribe([topic_path]) + self._conn.subscribe([self.topic_path]) return self._conn def should_collect_metric(self, metric_name): + if metric_name not in ALLOWED_METRICS: + # Metric is not part of datadog allowed list + return False + if not self.allowed_metrics: + # No filter specified, allow everything + return True + for reg in self.allowed_metrics: if re.match(reg, metric_name): + # Metric matched one pattern return True - else: - self.log.debug("Ignoring non whitelisted metric %s", metric_name) - def submit_metric(self, metric, additional_tags): + self.log.debug("Ignoring non whitelisted metric: %s", metric_name) + return False + + def submit_metric(self, metric): metric_name = metric['metric'] - if self.should_collect_metric(metric_name): - tags = ["{}:{}".format(k, v) for k, v in iteritems(metric['tags'])] + additional_tags - if 'buckets' in metric: - for bounds, value in metric['buckets'].items(): - lower, upper = bounds.split(',') - self.submit_histogram_bucket( - metric_name, value, int(lower), int(upper), monotonic=True, hostname=self.hostname, tags=tags - ) - else: - # No distinction between gauge and count metrics, this should be hardcoded metric by metric + tags = self.base_tags + ["{}:{}".format(k, v) for k, v in iteritems(metric['tags'])] + + if 'buckets' in metric: + for bounds, value in metric['buckets'].items(): + lower, upper = bounds.split(',') + self.submit_histogram_bucket( + metric_name, value, int(lower), int(upper), monotonic=True, hostname=self.hostname, tags=tags + ) + else: + if metric_name in GAUGE_METRICS: self.gauge(metric_name, metric['value'], tags=tags) + elif metric_name in MONOTONIC_COUNTER_METRICS: + self.monotonic_count(metric_name, metric['value'], tags=tags) + elif metric_name in COUNT_METRICS: + self.count(metric_name, metric['value'], tags=tags) diff --git a/mapr/datadog_checks/mapr/utils.py b/mapr/datadog_checks/mapr/utils.py new file mode 100644 index 0000000000000..feb50f6ce735c --- /dev/null +++ b/mapr/datadog_checks/mapr/utils.py @@ -0,0 +1,22 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +import socket + + +def get_stream_id_for_topic(topic_name, rng=2): + """To distribute load, all the topics are not in the same stream. Each topic named is hashed + to obtain an id which is in turn the name of the stream""" + h = 5381 + for c in topic_name: + h = ((h << 5) + h) + ord(c) + return abs(h % rng) + + +def get_fqdn(): + """Returns the fully qualified domain name similarly to how `hostname -f` does it. + The fqdn is used to find the correct mapr topic to read metrics from.""" + # Not portable but Mapr only runs on Linux + # https://mapr.com/docs/61/InteropMatrix/r_os_matrix_6.x.html + return socket.getfqdn() diff --git a/mapr/manifest.json b/mapr/manifest.json index d14ce57ed0bc2..afa9932cf3a3e 100644 --- a/mapr/manifest.json +++ b/mapr/manifest.json @@ -1,22 +1,22 @@ { - "display_name": "mapr", + "display_name": "MapR", "maintainer": "help@datadoghq.com", "manifest_version": "1.0.0", "name": "mapr", "metric_prefix": "mapr.", - "metric_to_check": "", + "metric_to_check": "mapr.metrics.submitted", "creates_events": false, - "short_description": "MapR metrics", + "short_description": "Collect the monitoring metrics made available by MapR.", "guid": "7d1de422-85a6-47cc-9962-427a9499d109", "support": "core", "supported_os": [ - "linux", - "mac_os", - "windows" + "linux" ], "public_title": "Datadog-MapR Integration", "categories": [ - "data-store" + "data-store", + "os & system", + "processing" ], "type": "check", "is_public": false, diff --git a/mapr/metadata.csv b/mapr/metadata.csv index d69aee9768406..489d50ca412c9 100644 --- a/mapr/metadata.csv +++ b/mapr/metadata.csv @@ -1,149 +1,158 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name -mapr.fs.reads,gauge,,read,,The number of remote reads.,0,mapr, -mapr.fs.writes,gauge,,write,,The number of remote writes.,0,mapr, -mapr.fs.read_bytes,gauge,,mebibyte,,The amount of data read remotely in MB.,0,mapr, -mapr.fs.bulk_writes,gauge,,write,,The number of bulk-write operations. Bulk-write operations occur when the MapR filesystem container master aggregates multiple file writes from one or more clients into one RPC before replicating the writes.,0,mapr, -mapr.fs.local_reads,gauge,,read,,The number of file read operations by applications that are running on the MapR filesystem node.,0,mapr, -mapr.fs.write_bytes,gauge,,mebibyte,,The amount of data written remotely in MB.,0,mapr, -mapr.fs.kvstore_scan,gauge,,operation,,The number of scan operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, -mapr.fs.local_readbytes,gauge,,byte,,The number of bytes read by applications that are running on the MapR filesystem node.,0,mapr, -mapr.fs.local_writes,gauge,,operation,,The number of file write operations by applications that are running on the MapR filesystem node.,0,mapr, -mapr.fs.kvstore_delete,gauge,,operation,,The number of delete operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, -mapr.fs.kvstore_insert,gauge,,operation,,The number of insert operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, -mapr.fs.kvstore_lookup,gauge,,operation,,The number of lookup operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, -mapr.fs.read_cachehits,gauge,,hit,,The number of cache hits for file reads. This value includes pages that the MapR filesystem populates using readahead mechanism.,0,mapr, -mapr.fs.bulk_writesbytes,gauge,,byte,,The number of bytes written by bulk-write operations. Bulk-write operations occur when the MapR filesystem container master aggregates multiple file writes from one or more clients into one RPC before replicating the writes.,0,mapr, -mapr.fs.read_cachemisses,gauge,,miss,,The number of cache misses for file read operations.,0,mapr, -mapr.fs.statstype_create,gauge,,operation,,The number of file create operations.,0,mapr, -mapr.fs.statstype_lookup,gauge,,operation,,The number of lookup operations.,0,mapr, -mapr.fs.statstype_read,gauge,,read,,The number of file read operations.,0,mapr, -mapr.fs.statstype_write,gauge,,write,,The number of file write operations.,0,mapr, -mapr.fs.local_writebytes,gauge,,byte,,The number of bytes written by applications that are running on the MapR filesystem node.,0,mapr, -mapr.cache.misses_dir,gauge,,miss,,The number of cache misses on the table LRU cache.,0,mapr, -mapr.cache.lookups_dir,gauge,,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, -mapr.cache.misses_data,gauge,,miss,,The number of cache misses in the block cache.,0,mapr, -mapr.cache.misses_meta,gauge,,miss,,The number of cache misses on the meta LRU cache.,0,mapr, -mapr.cache.lookups_data,gauge,,operation,,The number of cache lookups in the block cache.,0,mapr, -mapr.cache.lookups_meta,gauge,,operation,,The number of cache lookups on the meta LRU cache. The meta LRU is used for storing internal B-Tree pages.,0,mapr, -mapr.cache.misses_inode,gauge,,miss,,The number of cache misses in the inode cache.,0,mapr, -mapr.cache.misses_table,gauge,,miss,,The number of cache misses on the table LRU cache.,0,mapr, -mapr.cache.lookups_inode,gauge,,,,The number of cache lookups in the inode cache.,0,mapr, -mapr.cache.lookups_table,gauge,,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, -mapr.cache.misses_largefile,gauge,,miss,,The number of cache misses on the large file LRU cache.,0,mapr, -mapr.cache.misses_smallfile,gauge,,miss,,The number of cache misses on the small file LRU cache.,0,mapr, -mapr.cache.lookups_largefile,gauge,,operation,,The number of cache lookups in the large file LRU cache. The large file LRU is used for storing files with size greater than 64K and MapR database data pages.,0,mapr, -mapr.cache.lookups_smallfile,gauge,,operation,,The number of cache lookups on the small file LRU cache. This LRU is used for storing files with size less than 64K and MapR database index pages.,0,mapr, -mapr.db.flushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the bucket size exceeds a threshold.,0,mapr, -mapr.db.forceflushes,gauge,,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the in-memory bucket file cache fills up.,0,mapr, -mapr.db.get_rpcs,gauge,,operation,,The number of MapR database get RPCs completed,0,mapr, -mapr.db.get_bytes,gauge,,byte,,The number of bytes read by get RPCs,0,mapr, -mapr.db.put_bytes,gauge,,byte,,The number of bytes written by put RPCs,0,mapr, -mapr.db.scan_rpcs,gauge,,operation,,The number of MapR Database scan RPCs completed,0,mapr, -mapr.db.scan_bytes,gauge,,byte,,The number of bytes read by scan RPCs,0,mapr, -mapr.db.append_rpcs,gauge,,operation,,The number of MapR Database append RPCs completed,0,mapr, -mapr.db.get_currpcs,gauge,,operation,,The number of MapR Database get RPCs in progress,0,mapr, -mapr.db.put_currpcs,gauge,,operation,,The number of MapR Database put RPCs in progress,0,mapr, -mapr.db.put_rpcs,gauge,,operation,,The number of MapR Database put RPCs completed,0,mapr, -mapr.db.put_rpcrows,gauge,,object,,The number of rows written by put RPCs. Each MapR Database put RPC can include multiple put rows.,0,mapr, -mapr.db.ttlcompacts,gauge,,operation,,The number of compactions that result in reclamation of disk space due to removal of stale data.,0,mapr, -mapr.db.fullcompacts,gauge,,operation,,The number of compactions that combine multiple MapR Database data files containing sorted data (known as spills) into a single spill file.,0,mapr, -mapr.db.get_readrows,gauge,,object,,The number of rows read by get RPCs,0,mapr, -mapr.db.get_resprows,gauge,,object,,The number of rows returned from get RPCs,0,mapr, -mapr.db.minicompacts,gauge,,operation,,The number of compactions that combine multiple small data files containing sorted data (known as spills) into a single spill file.,0,mapr, -mapr.db.put_readrows,gauge,,object,,The number of rows read by put RPCs,0,mapr, -mapr.db.scan_currpcs,gauge,,operation,,The number of MapR Database scan RPCs in progress,0,mapr, -mapr.db.scan_resprows,gauge,,object,,The number of rows returned from scan RPCs.,0,mapr, -mapr.db.scan_readrows,gauge,,object,,The number of rows read by scan RPCs,0,mapr, -mapr.db.append_rpcrows,gauge,,object,,The number of rows written by append RPCs,0,mapr, -mapr.db.increment_rpcs,gauge,,operation,,The number of MapR Database increment RPCs completed,0,mapr, -mapr.db.increment_bytes,gauge,,byte,,The number of bytes written by increment RPCs,0,mapr, -mapr.db.valuecache_hits,gauge,,operation,,The number of MapR Database operations that utilized the MapR Database value cache,0,mapr, -mapr.db.checkandput_rpcs,gauge,,operation,,The number of MapR Database check and put RPCs completed,0,mapr, -mapr.db.checkandput_bytes,gauge,,byte,,The number of bytes written by check and put RPCs,0,mapr, -mapr.db.increment_rpcrows,gauge,,object,,The number of rows written by increment RPCs,0,mapr, -mapr.db.updateandget_rpcs,gauge,,operation,,The number of MapR Database update and get RPCs completed,0,mapr, -mapr.db.updateandget_bytes,gauge,,byte,,The number of bytes written by update and get RPCs,0,mapr, -mapr.db.valuecache_lookups,gauge,,operation,,The number of MapR Database operations that performed a lookup on the MapR Database value cache,0,mapr, -mapr.db.checkandput_rpcrows,gauge,,object,,The number of rows written by check and put RPCs,0,mapr, -mapr.db.valuecache_usedSize,gauge,,mebibyte,,The MapR Database value cache size in MB,0,mapr, -mapr.db.append_bytes,gauge,,byte,,The number of bytes written by append RPCs,0,mapr, -mapr.db.updateandget_rpcrows,gauge,,object,,The number of rows written by update and get RPCs,0,mapr, -mapr.db.cdc.sent_bytes,gauge,,byte,,The number of bytes of CDC data sent,0,mapr, -mapr.db.cdc.pending_bytes,gauge,,byte,,The number of bytes of CDC data remaining to be sent,0,mapr, -mapr.db.repl.sent_bytes,gauge,,byte,,The number of bytes sent to replicate data,0,mapr, -mapr.db.repl.pending_bytes,gauge,,byte,,The number of bytes of replication data remaining to be sent,0,mapr, -mapr.db.table.read_rows,gauge,,object,,The number of rows read from tables,0,mapr, -mapr.db.table.resp_rows,gauge,,object,,The number of rows returned from tables,0,mapr, -mapr.db.table.read_bytes,gauge,,byte,,The number of bytes read from tables,0,mapr, -mapr.db.table.rpcs,gauge,,operation,,The number of RPC calls completed on tables,0,mapr -mapr.db.table.write_rows,gauge,,object,,The number of rows written to tables,0,mapr, -mapr.db.table.write_bytes,gauge,,byte,,The number of bytes written to tables,0,mapr, -mapr.db.table.value_cache_hits,gauge,,operation,,The number of MapR Database operations on tables that utilized the MapR Database value cache,0,mapr, -mapr.db.table.value_cache_lookups,gauge,,operation,,The number of MapR Database operations on tables that performed a lookup on the MapR Database value cache,0,mapr, -mapr.db.index.pending_bytes,gauge,,byte,,The number of bytes of secondary index data remaining to be sent,0,mapr, -mapr.db.seg_gets,gauge,,,,,0,mapr, -mapr.db.ldb_reads,gauge,,read,,,0,mapr, -mapr.db.resv_free,gauge,,,,,0,mapr, -mapr.db.seg_scans,gauge,,,,,0,mapr, -mapr.db.segflushes,gauge,,,,,0,mapr, -mapr.db.spill_gets,gauge,,,,,0,mapr, -mapr.db.table_rpcs,gauge,,,,,0,mapr, -mapr.db.block_reads,gauge,,read,,,0,mapr, -mapr.db.bloom_skips,gauge,,,,,0,mapr, -mapr.db.bucket_gets,gauge,,,,,0,mapr, -mapr.db.seg_creates,gauge,,,,,0,mapr, -mapr.db.spill_scans,gauge,,,,,0,mapr, -mapr.db.tablet_gets,gauge,,,,,0,mapr, -mapr.db.tablet_puts,gauge,,,,,0,mapr, -mapr.db.bucket_scans,gauge,,,,,0,mapr, -mapr.db.force_flushes,gauge,,,,,0,mapr, -mapr.db.bucket_writes,gauge,,,,,0,mapr, -mapr.db.scan_rablocks,gauge,,,,,0,mapr, -mapr.db.scan_raspills,gauge,,,,,0,mapr, -mapr.db.spill_creates,gauge,,,,,0,mapr, -mapr.db.spill_scanrows,gauge,,,,,0,mapr, -mapr.db.curfullcompacts,gauge,,operation,,,0,mapr, -mapr.db.scan_rasegments,gauge,,,,,0,mapr, -mapr.db.bucket_writebytes,gauge,,byte,,,0,mapr, -mapr.db.increment_currpcs,gauge,,,,,0,mapr, -mapr.db.tabletlookup_rpcs,gauge,,,,,0,mapr, -mapr.db.importsegment_rpcs,gauge,,,,,0,mapr, -mapr.db.scan_raadviseranges,gauge,,,,,0,mapr, -mapr.db.tabletlookup_currpcs,gauge,,,,,0,mapr, -mapr.db.importbucket_rpcs,gauge,,,,,0,mapr, -mapr.db.index.sent_bytes,gauge,,byte,,,0,mapr, -mapr.db.index.read_bytes,gauge,,byte,,,0,mapr, -mapr.db.log_compaction.sent_bytes,gauge,,byte,,,0,mapr, -mapr.db.log_compaction.pending_bytes,gauge,,byte,,,0,mapr, -mapr.io.write_bytes,gauge,,mebibyte,,The number of MB written to disk.,0,mapr, -mapr.io.writes,gauge,,write,,The number of MapR Filesystem disk write operations.,0,mapr, -mapr.io.reads,gauge,,read,,The number of MapR Filesystem disk read operations.,0,mapr, -mapr.io.read_bytes,gauge,,mebibyte,,The number of MB read from disk.,0,mapr, -mapr.process.vm,gauge,,mebibyte,,The amount of virtual memory in MB used by MapR processes.,0,mapr, -mapr.process.rss,gauge,,mebibyte,,The actual amount of memory in MB used by MapR processes.,0,mapr, -mapr.process.data,gauge,,mebibyte,,The amount memory in MB used by the data segments of MapR processes.,0,mapr, -mapr.process.cpu_percent,gauge,,percent,,The percentage of CPU used for MapR processes.,0,mapr, -mapr.process.mem_percent,gauge,,percent,,The percentage of total system memory (not capped by MapR processes) used for MapR processes.,0,mapr,mem_percent -mapr.process.cpu_time.syst,gauge,,second,,The amount of time measured in seconds that the process has been in kernel mode.,0,mapr, -mapr.process.cpu_time.user,gauge,,second,,The amount of time measured in seconds that the process has been in user mode,0,mapr, -mapr.process.disk_ops.read,gauge,,read,,The number of read operations for MapR processes.,0,mapr, -mapr.process.disk_ops.write,gauge,,write,,The number of write operations for MapR processes.,0,mapr, -mapr.process.disk_octets.read,gauge,,byte,,The number of bytes read from disk for MapR processes.,0,mapr, -mapr.process.disk_octets.write,gauge,,byte,,The number of bytes written to disk for MapR processes.,0,mapr, -mapr.process.page_faults.majflt,gauge,,error,,The number of major MapR process faults that required loading a memory page from disk.,0,mapr, -mapr.process.page_faults.minflt,gauge,,error,,The number of minor MapR process faults that required loading a memory page from disk.,0,mapr, -mapr.process.context_switch_voluntary,gauge,,process,,The number of voluntary context switches for MapR processes.,0,mapr, -mapr.process.context_switch_involuntary,gauge,,operation,,The number of involuntary context switches for MapR processes.,0,mapr, -mapr.streams.listen_msgs,gauge,,object,,The number of Streams messages read by the consumer.,0,mapr, -mapr.streams.listen_rpcs,gauge,,object,,The number of Streams consumer RPCs.,0,mapr, -mapr.streams.listen_bytes,gauge,,mebibyte,,The number of megabytes consumed by Streams messages.,0,mapr, -mapr.streams.produce_msgs,gauge,,object,,The number of Streams messages produced.,0,mapr, -mapr.streams.produce_rpcs,gauge,,object,,The number of Streams producer RPCs.,0,mapr, -mapr.streams.produce_bytes,gauge,,mebibyte,,The number of megabytes produced by Streams messages.,0,mapr, -mapr.streams.listen_currpcs,gauge,,object,,The number of concurrent Stream consumer RPCs.,0,mapr, -mapr.rpc.bytes_read,gauge,,byte,,The number of bytes received by the MapR Filesystem over RPC.,0,mapr, -mapr.rpc.bytes_sent,gauge,,byte,,The number of bytes sent by the MapR filesystem over RPC.,0,mapr, -mapr.rpc.calls_recd,gauge,,message,,The number of RPC calls received by the MapR filesystem.,0,mapr, -mapr.topology.utilization,gauge,,percent,,The aggregate percentage of CPU utilization.,0,mapr, -mapr.topology.disks_used_capacity,gauge,,gibibyte,,The amount disk space used in gigabytes.,0,mapr, -mapr.topology.disks_total_capacity,gauge,,gibibyte,,The disk capacity in gigabytes. ,0,mapr, +mapr.metrics.submitted,gauge,,,,Number of metrics submitted every check run.,0,mapr, +mapr.drill.allocator_root_used,gauge,10,byte,,The amount of memory used in bytes by the internal memory allocator.,0,mapr, +mapr.drill.allocator_root_peak,gauge,10,byte,,The peak amount of memory used in bytes by the internal memory allocator.,0,mapr, +mapr.drill.blocked_count,gauge,10,thread,,The number of threads that are blocked because they are waiting for a monitor lock.,0,mapr, +mapr.drill.count,gauge,10,thread,,The number of live threads (including both daemon and non-daemon threads).,0,mapr, +mapr.drill.fd_usage,gauge,10,,,The ratio of used to total file descriptors.,0,mapr, +mapr.drill.fragments_running,gauge,10,byte,,The number of query fragments currently running in the drillbit.,0,mapr, +mapr.drill.heap_used,gauge,10,byte,,The amount of heap memory used in bytes by the JVM.,0,mapr, +mapr.drill.non_heap_used,gauge,10,byte,,The amount of non-heap memory used in bytes by the JVM.,0,mapr, +mapr.drill.queries_completed,count,10,byte,,"The number of completed, canceled or failed queries for which this drillbit is the foreman.",0,mapr, +mapr.drill.queries_running,gauge,10,byte,,The number of running queries for which this drillbit is the foreman.,0,mapr, +mapr.drill.runnable_count,gauge,10,thread,,The number of threads executing in the JVM.,0,mapr, +mapr.drill.waiting_count,gauge,10,thread,,The number of threads that are waiting to be executed. This can occur when a thread must wait for another thread to perform an action before proceeding.,0,mapr, +mapr.alarms.alarm_raised,gauge,10,thread,,The number of threads that are waiting to be executed. This can occur when a thread must wait for another thread to perform an action before proceeding.,0,mapr, +mapr.fs.reads,count,10,read,,The number of remote reads.,0,mapr, +mapr.fs.writes,count,10,write,,The number of remote writes.,0,mapr, +mapr.fs.read_bytes,count,10,mebibyte,,The amount of data read remotely in MB.,0,mapr, +mapr.fs.bulk_writes,count,10,write,,The number of bulk-write operations. Bulk-write operations occur when the MapR filesystem container master aggregates multiple file writes from one or more clients into one RPC before replicating the writes.,0,mapr, +mapr.fs.local_reads,count,10,read,,The number of file read operations by applications that are running on the MapR filesystem node.,0,mapr, +mapr.fs.write_bytes,count,10,mebibyte,,The amount of data written remotely in MB.,0,mapr, +mapr.fs.kvstore_scan,count,10,operation,,The number of scan operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.local_readbytes,count,10,byte,,The number of bytes read by applications that are running on the MapR filesystem node.,0,mapr, +mapr.fs.local_writes,count,10,operation,,The number of file write operations by applications that are running on the MapR filesystem node.,0,mapr, +mapr.fs.kvstore_delete,count,10,operation,,The number of delete operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.kvstore_insert,count,10,operation,,The number of insert operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.kvstore_lookup,count,10,operation,,The number of lookup operations on key-value store files which are used by the CLDB and MapR database.,0,mapr, +mapr.fs.read_cachehits,count,10,hit,,The number of cache hits for file reads. This value includes pages that the MapR filesystem populates using readahead mechanism.,0,mapr, +mapr.fs.bulk_writesbytes,count,10,byte,,The number of bytes written by bulk-write operations. Bulk-write operations occur when the MapR filesystem container master aggregates multiple file writes from one or more clients into one RPC before replicating the writes.,0,mapr, +mapr.fs.read_cachemisses,count,10,miss,,The number of cache misses for file read operations.,0,mapr, +mapr.fs.statstype_create,count,10,operation,,The number of file create operations.,0,mapr, +mapr.fs.statstype_lookup,count,10,operation,,The number of lookup operations.,0,mapr, +mapr.fs.statstype_read,count,10,read,,The number of file read operations.,0,mapr, +mapr.fs.statstype_write,count,10,write,,The number of file write operations.,0,mapr, +mapr.fs.local_writebytes,count,10,byte,,The number of bytes written by applications that are running on the MapR filesystem node.,0,mapr, +mapr.cache.misses_dir,count,10,miss,,The number of cache misses on the table LRU cache.,0,mapr, +mapr.cache.lookups_dir,count,10,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, +mapr.cache.misses_data,count,10,miss,,The number of cache misses in the block cache.,0,mapr, +mapr.cache.misses_meta,count,10,miss,,The number of cache misses on the meta LRU cache.,0,mapr, +mapr.cache.lookups_data,count,10,operation,,The number of cache lookups in the block cache.,0,mapr, +mapr.cache.lookups_meta,count,10,operation,,The number of cache lookups on the meta LRU cache. The meta LRU is used for storing internal B-Tree pages.,0,mapr, +mapr.cache.misses_inode,count,10,miss,,The number of cache misses in the inode cache.,0,mapr, +mapr.cache.misses_table,count,10,miss,,The number of cache misses on the table LRU cache.,0,mapr, +mapr.cache.lookups_inode,count,10,,,The number of cache lookups in the inode cache.,0,mapr, +mapr.cache.lookups_table,count,10,operation,,The number of cache lookups in the table LRU cache. The table LRU is used for storing internal B-Tree leaf pages.,0,mapr, +mapr.cache.misses_largefile,count,10,miss,,The number of cache misses on the large file LRU cache.,0,mapr, +mapr.cache.misses_smallfile,count,10,miss,,The number of cache misses on the small file LRU cache.,0,mapr, +mapr.cache.lookups_largefile,count,10,operation,,The number of cache lookups in the large file LRU cache. The large file LRU is used for storing files with size greater than 64K and MapR database data pages.,0,mapr, +mapr.cache.lookups_smallfile,count,10,operation,,The number of cache lookups on the small file LRU cache. This LRU is used for storing files with size less than 64K and MapR database index pages.,0,mapr, +mapr.cldb.cluster_cpu_total,gauge,10,cpu,,The number of physical CPUs in the cluster.,0,mapr, +mapr.cldb.cluster_cpubusy_percent,gauge,10,percent,,The aggregate percentage of busy CPUs in the cluster.,0,mapr, +mapr.cldb.cluster_disk_capacity,gauge,10,gibibyte,,The storage capacity for MapR disks in GB.,0,mapr, +mapr.cldb.cluster_diskspace_used,gauge,10,gibibyte,,The amount of MapR disks used in GB.,-1,mapr, +mapr.cldb.cluster_memory_capacity,gauge,10,mebibyte,,The memory capacity in MB.,0,mapr, +mapr.cldb.cluster_memory_used,gauge,10,mebibyte,,The amount of used memory in MB.,-1,mapr, +mapr.cldb.containers,gauge,10,container,,The number of containers currently in the cluster.,0,mapr, +mapr.cldb.containers_created,count,10,container,,The cumulative number of containers created in the cluster. This value includes containers that have been deleted.,0,mapr, +mapr.cldb.containers_unusable,gauge,10,container,,The number of containers that are no longer usable. The CLDB marks a container as unusable when the node that stores the container is offline for 1 hour or more.,-1,mapr, +mapr.cldb.disk_space_available,gauge,10,gibibyte,,The amount of disk space available in GB.,1,mapr, +mapr.cldb.nodes_in_cluster,gauge,10,node,,The number of nodes in the cluster.,0,mapr, +mapr.cldb.nodes_offline,gauge,10,node,,The number of nodes in the cluster that are offline.,-1,mapr, +mapr.cldb.rpc_received,count,10,operation,,The number of RPCs received.,0,mapr, +mapr.cldb.rpcs_failed,count,10,operation,,The number of RPCs failed.,-1,mapr, +mapr.cldb.storage_pools_cluster,gauge,10,,,The number of storage pools.,0,mapr, +mapr.cldb.storage_pools_offline,gauge,10,,,The number of offline storage pools.,-1,mapr, +mapr.cldb.volumes,gauge,10,volume,,"The number of volumes created, including system volumes.",0,mapr, +mapr.db.flushes,count,10,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the bucket size exceeds a threshold.,0,mapr, +mapr.db.forceflushes,count,10,flush,,The number of flushes that reorganize data from bucket files (unsorted data) to spill files (sorted data) when the in-memory bucket file cache fills up.,0,mapr, +mapr.db.get_rpcs,count,10,operation,,The number of MapR database get RPCs completed,0,mapr, +mapr.db.get_bytes,count,10,byte,,The number of bytes read by get RPCs,0,mapr, +mapr.db.put_bytes,count,10,byte,,The number of bytes written by put RPCs,0,mapr, +mapr.db.scan_rpcs,count,10,operation,,The number of MapR Database scan RPCs completed,0,mapr, +mapr.db.scan_bytes,count,10,byte,,The number of bytes read by scan RPCs,0,mapr, +mapr.db.append_rpcs,count,10,operation,,The number of MapR Database append RPCs completed,0,mapr, +mapr.db.get_currpcs,gauge,10,operation,,The number of MapR Database get RPCs in progress,0,mapr, +mapr.db.put_currpcs,gauge,10,operation,,The number of MapR Database put RPCs in progress,0,mapr, +mapr.db.put_rpcs,count,10,operation,,The number of MapR Database put RPCs completed,0,mapr, +mapr.db.put_rpcrows,count,10,object,,The number of rows written by put RPCs. Each MapR Database put RPC can include multiple put rows.,0,mapr, +mapr.db.ttlcompacts,count,10,operation,,The number of compactions that result in reclamation of disk space due to removal of stale data.,0,mapr, +mapr.db.fullcompacts,count,10,operation,,The number of compactions that combine multiple MapR Database data files containing sorted data (known as spills) into a single spill file.,0,mapr, +mapr.db.get_readrows,count,10,object,,The number of rows read by get RPCs,0,mapr, +mapr.db.get_resprows,count,10,object,,The number of rows returned from get RPCs,0,mapr, +mapr.db.minicompacts,count,10,operation,,The number of compactions that combine multiple small data files containing sorted data (known as spills) into a single spill file.,0,mapr, +mapr.db.put_readrows,count,10,object,,The number of rows read by put RPCs,0,mapr, +mapr.db.scan_currpcs,gauge,10,operation,,The number of MapR Database scan RPCs in progress,0,mapr, +mapr.db.scan_resprows,count,10,object,,The number of rows returned from scan RPCs.,0,mapr, +mapr.db.scan_readrows,count,10,object,,The number of rows read by scan RPCs,0,mapr, +mapr.db.append_rpcrows,count,10,object,,The number of rows written by append RPCs,0,mapr, +mapr.db.increment_rpcs,count,10,operation,,The number of MapR Database increment RPCs completed,0,mapr, +mapr.db.increment_bytes,count,10,byte,,The number of bytes written by increment RPCs,0,mapr, +mapr.db.valuecache_hits,count,10,operation,,The number of MapR Database operations that utilized the MapR Database value cache,0,mapr, +mapr.db.checkandput_rpcs,count,10,operation,,The number of MapR Database check and put RPCs completed,0,mapr, +mapr.db.checkandput_bytes,count,10,byte,,The number of bytes written by check and put RPCs,0,mapr, +mapr.db.increment_rpcrows,count,10,object,,The number of rows written by increment RPCs,0,mapr, +mapr.db.updateandget_rpcs,count,10,operation,,The number of MapR Database update and get RPCs completed,0,mapr, +mapr.db.updateandget_bytes,count,10,byte,,The number of bytes written by update and get RPCs,0,mapr, +mapr.db.valuecache_lookups,count,10,operation,,The number of MapR Database operations that performed a lookup on the MapR Database value cache,0,mapr, +mapr.db.checkandput_rpcrows,count,10,object,,The number of rows written by check and put RPCs,0,mapr, +mapr.db.valuecache_usedSize,gauge,10,mebibyte,,The MapR Database value cache size in MB,0,mapr, +mapr.db.append_bytes,count,10,byte,,The number of bytes written by append RPCs,0,mapr, +mapr.db.updateandget_rpcrows,count,10,object,,The number of rows written by update and get RPCs,0,mapr, +mapr.db.cdc.sent_bytes,count,10,byte,,The number of bytes of CDC data sent,0,mapr, +mapr.db.cdc.pending_bytes,gauge,10,byte,,The number of bytes of CDC data remaining to be sent,0,mapr, +mapr.db.repl.sent_bytes,count,10,byte,,The number of bytes sent to replicate data,0,mapr, +mapr.db.repl.pending_bytes,gauge,10,byte,,The number of bytes of replication data remaining to be sent,0,mapr, +mapr.db.table.latency,gauge,60,millisecond,,"The latency of RPC operations on tables,represented as a histogram. Endpoints identify histogram bucket boundaries.",-1,mapr, +mapr.db.table.read_rows,count,60,object,,The number of rows read from tables,0,mapr, +mapr.db.table.resp_rows,count,60,object,,The number of rows returned from tables,0,mapr, +mapr.db.table.read_bytes,count,60,byte,,The number of bytes read from tables,0,mapr, +mapr.db.table.rpcs,count,60,operation,,The number of RPC calls completed on tables,0,mapr, +mapr.db.table.write_rows,count,60,object,,The number of rows written to tables,0,mapr, +mapr.db.table.write_bytes,count,60,byte,,The number of bytes written to tables,0,mapr, +mapr.db.table.value_cache_hits,count,60,operation,,The number of MapR Database operations on tables that utilized the MapR Database value cache,0,mapr, +mapr.db.table.value_cache_lookups,count,60,operation,,The number of MapR Database operations on tables that performed a lookup on the MapR Database value cache,0,mapr, +mapr.db.index.pending_bytes,gauge,60,byte,,The number of bytes of secondary index data remaining to be sent,0,mapr, +mapr.io.write_bytes,count,10,mebibyte,,The number of MB written to disk.,0,mapr, +mapr.io.writes,count,10,write,,The number of MapR Filesystem disk write operations.,0,mapr, +mapr.io.reads,gauge,10,read,,The number of MapR Filesystem disk read operations.,0,mapr, +mapr.io.read_bytes,gauge,10,mebibyte,,The number of MB read from disk.,0,mapr, +mapr.process.vm,gauge,10,mebibyte,,The amount of virtual memory in MB used by MapR processes.,0,mapr, +mapr.process.rss,gauge,10,mebibyte,,The actual amount of memory in MB used by MapR processes.,0,mapr, +mapr.process.data,gauge,10,mebibyte,,The amount memory in MB used by the data segments of MapR processes.,0,mapr, +mapr.process.cpu_percent,gauge,10,percent,,The percentage of CPU used for MapR processes.,0,mapr, +mapr.process.mem_percent,gauge,10,percent,,The percentage of total system memory (not capped by MapR processes) used for MapR processes.,0,mapr, +mapr.process.cpu_time.syst,count,10,second,,The amount of time measured in seconds that the process has been in kernel mode.,0,mapr, +mapr.process.cpu_time.user,count,10,second,,The amount of time measured in seconds that the process has been in user mode,0,mapr, +mapr.process.disk_ops.read,count,10,read,,The number of read operations for MapR processes.,0,mapr, +mapr.process.disk_ops.write,count,10,write,,The number of write operations for MapR processes.,0,mapr, +mapr.process.disk_octets.read,count,10,byte,,The number of bytes read from disk for MapR processes.,0,mapr, +mapr.process.disk_octets.write,count,10,byte,,The number of bytes written to disk for MapR processes.,0,mapr, +mapr.process.page_faults.majflt,count,10,error,,The number of major MapR process faults that required loading a memory page from disk.,0,mapr, +mapr.process.page_faults.minflt,count,10,error,,The number of minor MapR process faults that required loading a memory page from disk.,0,mapr, +mapr.process.context_switch_voluntary,count,10,process,,The number of voluntary context switches for MapR processes.,0,mapr, +mapr.process.context_switch_involuntary,count,10,operation,,The number of involuntary context switches for MapR processes.,0,mapr, +mapr.streams.listen_msgs,count,10,object,,The number of Streams messages read by the consumer.,0,mapr, +mapr.streams.listen_rpcs,count,10,object,,The number of Streams consumer RPCs.,0,mapr, +mapr.streams.listen_bytes,count,10,mebibyte,,The number of megabytes consumed by Streams messages.,0,mapr, +mapr.streams.produce_msgs,count,10,object,,The number of Streams messages produced.,0,mapr, +mapr.streams.produce_rpcs,count,10,object,,The number of Streams producer RPCs.,0,mapr, +mapr.streams.produce_bytes,count,10,mebibyte,,The number of megabytes produced by Streams messages.,0,mapr, +mapr.streams.listen_currpcs,gauge,10,object,,The number of concurrent Stream consumer RPCs.,0,mapr, +mapr.rpc.bytes_recd,count,10,byte,,The number of bytes received by the MapR Filesystem over RPC.,0,mapr, +mapr.rpc.bytes_sent,count,10,byte,,The number of bytes sent by the MapR filesystem over RPC.,0,mapr, +mapr.rpc.calls_recd,count,10,message,,The number of RPC calls received by the MapR filesystem.,0,mapr, +mapr.topology.utilization,gauge,60,percent,,The aggregate percentage of CPU utilization.,0,mapr, +mapr.topology.disks_used_capacity,gauge,60,gibibyte,,The amount disk space used in gigabytes.,0,mapr, +mapr.topology.disks_total_capacity,gauge,60,gibibyte,,The disk capacity in gigabytes.,0,mapr, +mapr.volume.logical_used,gauge,10,mebibyte,,The number of MBs used for logical volumes before compression is applied to the files.,0,mapr, +mapr.volume.snapshot_used,gauge,10,mebibyte,,The number of MBs used for snapshots.,0,mapr, +mapr.volume.total_used,gauge,10,mebibyte,,The number of MB used for volumes and snapshots.,0,mapr, +mapr.volume.used,gauge,10,mebibyte,,The number of MB used for volumes after compression is applied to the files.,0,mapr, +mapr.volume.quota,gauge,10,mebibyte,,The number of megabytes(MB) used for volume quota.,0,mapr, +mapr.volmetrics.read_throughput,gauge,10,kibibyte,second,The per volume read throughput in KB,0,mapr, +mapr.volmetrics.write_throughput,gauge,10,kibibyte,second,The per volume write throughput in KB,0,mapr, +mapr.volmetrics.read_latency,gauge,10,millisecond,,The per volume read latency in milliseconds,-1,mapr, +mapr.volmetrics.write_latency,gauge,10,millisecond,,The per volume write latency in milliseconds,-1,mapr, +mapr.volmetrics.read_ops,count,10,operation,,A count of the read operations per volume,0,mapr, +mapr.volmetrics.write_ops,count,10,operation,,A count of the write operations per volume,0,mapr, diff --git a/mapr/tests/common.py b/mapr/tests/common.py index b17d72a78909b..378d69f4c1a11 100644 --- a/mapr/tests/common.py +++ b/mapr/tests/common.py @@ -1,14 +1,11 @@ # (C) Datadog, Inc. 2019 # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +from datadog_checks.dev import get_here +HERE = get_here() -INSTANCE = { - 'mapr_host': 'mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', - 'topic_path': '/var/mapr/mapr.monitoring/metricstreams', - 'whitelist': ['*'], - 'mapr_ticketfile_location': 'foo', -} +INSTANCE = {'ticket_location': 'foo'} KAFKA_METRIC = { u'metric': u'mapr.process.context_switch_involuntary', @@ -20,3 +17,218 @@ u'fqdn': u'mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', }, } + +DISTRIBUTION_METRIC = { + "metric": "mapr.db.table.latency", + "buckets": {"2,5": 21, "5,10": 11}, + "tags": { + "table_fid": "2070.42.262546", + "table_path": "/var/mapr/mapr.monitoring/tsdb-meta", + "noindex": "//primary", + "rpc_type": "put", + "fqdn": "mapr-lab-2-dhk4.c.datadog-integrations-lab.internal", + "clusterid": "7616098736519857348", + "clustername": "demo", + }, +} + +METRICS_IN_FIXTURE = { + 'mapr.cache.lookups_data', + 'mapr.cache.lookups_dir', + 'mapr.cache.lookups_inode', + 'mapr.cache.lookups_largefile', + 'mapr.cache.lookups_meta', + 'mapr.cache.lookups_smallfile', + 'mapr.cache.lookups_table', + 'mapr.cache.misses_data', + 'mapr.cache.misses_dir', + 'mapr.cache.misses_inode', + 'mapr.cache.misses_largefile', + 'mapr.cache.misses_meta', + 'mapr.cache.misses_smallfile', + 'mapr.cache.misses_table', + 'mapr.db.append_bytes', + 'mapr.db.append_rpcrows', + 'mapr.db.append_rpcs', + 'mapr.db.cdc.pending_bytes', + 'mapr.db.cdc.sent_bytes', + 'mapr.db.checkandput_bytes', + 'mapr.db.checkandput_rpcrows', + 'mapr.db.checkandput_rpcs', + 'mapr.db.flushes', + 'mapr.db.forceflushes', + 'mapr.db.fullcompacts', + 'mapr.db.get_bytes', + 'mapr.db.get_currpcs', + 'mapr.db.get_readrows', + 'mapr.db.get_resprows', + 'mapr.db.get_rpcs', + 'mapr.db.increment_bytes', + 'mapr.db.increment_rpcrows', + 'mapr.db.increment_rpcs', + 'mapr.db.index.pending_bytes', + 'mapr.db.minicompacts', + 'mapr.db.put_bytes', + 'mapr.db.put_currpcs', + 'mapr.db.put_readrows', + 'mapr.db.put_rpcrows', + 'mapr.db.put_rpcs', + 'mapr.db.repl.pending_bytes', + 'mapr.db.repl.sent_bytes', + 'mapr.db.scan_bytes', + 'mapr.db.scan_currpcs', + 'mapr.db.scan_readrows', + 'mapr.db.scan_resprows', + 'mapr.db.scan_rpcs', + 'mapr.db.ttlcompacts', + 'mapr.db.updateandget_bytes', + 'mapr.db.updateandget_rpcrows', + 'mapr.db.updateandget_rpcs', + 'mapr.db.valuecache_hits', + 'mapr.db.valuecache_lookups', + 'mapr.db.valuecache_usedSize', + 'mapr.fs.bulk_writes', + 'mapr.fs.bulk_writesbytes', + 'mapr.fs.kvstore_delete', + 'mapr.fs.kvstore_insert', + 'mapr.fs.kvstore_lookup', + 'mapr.fs.kvstore_scan', + 'mapr.fs.local_readbytes', + 'mapr.fs.local_reads', + 'mapr.fs.local_writebytes', + 'mapr.fs.local_writes', + 'mapr.fs.read_bytes', + 'mapr.fs.read_cachehits', + 'mapr.fs.read_cachemisses', + 'mapr.fs.reads', + 'mapr.fs.statstype_create', + 'mapr.fs.statstype_lookup', + 'mapr.fs.statstype_read', + 'mapr.fs.statstype_write', + 'mapr.fs.write_bytes', + 'mapr.fs.writes', + 'mapr.io.read_bytes', + 'mapr.io.reads', + 'mapr.io.write_bytes', + 'mapr.io.writes', + 'mapr.metrics.submitted', + 'mapr.process.context_switch_involuntary', + 'mapr.process.context_switch_voluntary', + 'mapr.process.cpu_percent', + 'mapr.process.cpu_time.syst', + 'mapr.process.cpu_time.user', + 'mapr.process.data', + 'mapr.process.disk_octets.read', + 'mapr.process.disk_octets.write', + 'mapr.process.disk_ops.read', + 'mapr.process.disk_ops.write', + 'mapr.process.mem_percent', + 'mapr.process.page_faults.majflt', + 'mapr.process.page_faults.minflt', + 'mapr.process.rss', + 'mapr.process.vm', + 'mapr.rpc.bytes_recd', + 'mapr.rpc.bytes_sent', + 'mapr.rpc.calls_recd', + 'mapr.streams.listen_bytes', + 'mapr.streams.listen_currpcs', + 'mapr.streams.listen_msgs', + 'mapr.streams.listen_rpcs', + 'mapr.streams.produce_bytes', + 'mapr.streams.produce_msgs', + 'mapr.streams.produce_rpcs', +} + + +STREAM_ID_FIXTURE = { + ('dapilufuco61', 1): 0, + ('dapilufuco61', 2): 0, + ('dapilufuco61', 3): 1, + ('dapilufuco61', 4): 0, + ('dapilufuco61', 5): 0, + ('dapilufuco61', 6): 4, + ('dapilufuco61', 7): 1, + ('dapilufuco61', 8): 0, + ('dapilufuco61', 9): 4, + ('giwanoyoki81', 1): 0, + ('giwanoyoki81', 2): 1, + ('giwanoyoki81', 3): 1, + ('giwanoyoki81', 4): 3, + ('giwanoyoki81', 5): 0, + ('giwanoyoki81', 6): 1, + ('giwanoyoki81', 7): 0, + ('giwanoyoki81', 8): 7, + ('giwanoyoki81', 9): 7, + ('juzisumoya51', 1): 0, + ('juzisumoya51', 2): 1, + ('juzisumoya51', 3): 1, + ('juzisumoya51', 4): 3, + ('juzisumoya51', 5): 1, + ('juzisumoya51', 6): 1, + ('juzisumoya51', 7): 3, + ('juzisumoya51', 8): 3, + ('juzisumoya51', 9): 7, + ('ligokiboda25', 1): 0, + ('ligokiboda25', 2): 1, + ('ligokiboda25', 3): 2, + ('ligokiboda25', 4): 1, + ('ligokiboda25', 5): 2, + ('ligokiboda25', 6): 5, + ('ligokiboda25', 7): 2, + ('ligokiboda25', 8): 1, + ('ligokiboda25', 9): 2, + ('linidojajo26', 1): 0, + ('linidojajo26', 2): 0, + ('linidojajo26', 3): 0, + ('linidojajo26', 4): 0, + ('linidojajo26', 5): 1, + ('linidojajo26', 6): 0, + ('linidojajo26', 7): 3, + ('linidojajo26', 8): 0, + ('linidojajo26', 9): 3, + ('nuwahibicu11', 1): 0, + ('nuwahibicu11', 2): 0, + ('nuwahibicu11', 3): 1, + ('nuwahibicu11', 4): 2, + ('nuwahibicu11', 5): 2, + ('nuwahibicu11', 6): 4, + ('nuwahibicu11', 7): 5, + ('nuwahibicu11', 8): 6, + ('nuwahibicu11', 9): 1, + ('pafuvonuki94', 1): 0, + ('pafuvonuki94', 2): 0, + ('pafuvonuki94', 3): 1, + ('pafuvonuki94', 4): 2, + ('pafuvonuki94', 5): 0, + ('pafuvonuki94', 6): 4, + ('pafuvonuki94', 7): 2, + ('pafuvonuki94', 8): 2, + ('pafuvonuki94', 9): 7, + ('rigugepihi22', 1): 0, + ('rigugepihi22', 2): 0, + ('rigugepihi22', 3): 2, + ('rigugepihi22', 4): 2, + ('rigugepihi22', 5): 4, + ('rigugepihi22', 6): 2, + ('rigugepihi22', 7): 5, + ('rigugepihi22', 8): 6, + ('rigugepihi22', 9): 8, + ('wutetusaba14', 1): 0, + ('wutetusaba14', 2): 1, + ('wutetusaba14', 3): 1, + ('wutetusaba14', 4): 3, + ('wutetusaba14', 5): 1, + ('wutetusaba14', 6): 1, + ('wutetusaba14', 7): 5, + ('wutetusaba14', 8): 7, + ('wutetusaba14', 9): 4, + ('yufidaxare27', 1): 0, + ('yufidaxare27', 2): 0, + ('yufidaxare27', 3): 1, + ('yufidaxare27', 4): 0, + ('yufidaxare27', 5): 4, + ('yufidaxare27', 6): 4, + ('yufidaxare27', 7): 6, + ('yufidaxare27', 8): 0, + ('yufidaxare27', 9): 4, +} diff --git a/mapr/tests/conftest.py b/mapr/tests/conftest.py index 08ea4fe8e32f3..e45ee8944f2ee 100644 --- a/mapr/tests/conftest.py +++ b/mapr/tests/conftest.py @@ -1,8 +1,10 @@ # (C) Datadog, Inc. 2019 # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +import os from copy import deepcopy +import mock import pytest from . import common @@ -16,3 +18,23 @@ def dd_environment(): @pytest.fixture def instance(): return deepcopy(common.INSTANCE) + + +@pytest.fixture +def mock_fqdn(): + with mock.patch('socket.getfqdn', return_value="stubbed.hostname"): + yield + + +@pytest.fixture +def mock_getconnection(): + def messages_iter(): + with open(os.path.join(common.HERE, 'fixtures', 'metrics.txt'), 'r') as f: + for line in f: + msg = mock.MagicMock(error=lambda: None, value=lambda: line) + yield msg + yield None + + poll = mock.MagicMock(side_effect=messages_iter()) + with mock.patch('datadog_checks.mapr.mapr.MaprCheck.get_connection', return_value=mock.MagicMock(poll=poll)): + yield diff --git a/mapr/tests/fixtures/metrics.txt b/mapr/tests/fixtures/metrics.txt new file mode 100644 index 0000000000000..664fd7b1fae3a --- /dev/null +++ b/mapr/tests/fixtures/metrics.txt @@ -0,0 +1,1003 @@ +[{"metric":"disk.disk_utilization","value":0.2,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_packets.rx","value":658827853,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_packets.tx","value":658827853,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.rx","value":77678496247,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.tx","value":77678496247,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":4.53846153846154,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":96,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.0059,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":8167,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.100300902708124,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":5050048,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":24091379,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":12.4373119358074,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":4.01203610832497,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":83.5506519558676,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":16.0804020100502,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":4.72361809045226,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":79.1959798994975,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":9.91983967935872,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":3.2064128256513,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":86.87374749499,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":9.40940940940941,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":3.9039039039039,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":86.6866866866867,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838252544,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836612096,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5367813110352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4632225036621,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15718715392,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15726370816,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838252544,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836612096,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5367813110352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4632225036621,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.shortterm","value":0.57,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.midterm","value":0.49,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.longterm","value":0.43,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":17124442112,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3149824,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"buffered","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5809029120,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"cached","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3193180160,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":134103040,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_unrecl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.resv_free","value":358,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_writes","value":65,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_writebytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.flushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.forceflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.segflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.minicompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.fullcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.ttlcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.curfullcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_creates","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_creates","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_resprows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_readrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_scans","value":130,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_scans","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_scans","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_scanrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.ldb_reads","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.block_reads","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_rasegments","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_raspills","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_raadviseranges","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_rablocks","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.updateandget_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.append_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.checkandput_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tabletlookup_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tabletlookup_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.importbucket_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.importsegment_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.append_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.updateandget_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.checkandput_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.append_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.updateandget_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.checkandput_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.reads","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.read_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.writes","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.write_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.produce_rpcs","value":30,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.produce_msgs","value":1702,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.produce_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_rpcs","value":155,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_msgs","value":3404,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.cdc.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.cdc.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.index.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.index.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.log_compaction.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.log_compaction.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.repl.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":96.1809045226131,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":5.3,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":2.2,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":92.4,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":2.7027027027027,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.7017017017017,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":95.5955955955956,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":4.7,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.8,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":93.5,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":4.31293881644935,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.50451354062187,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":94.1825476429288,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.read","value":13314080768,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.write","value":208348127232,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.read","value":302554,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.write","value":3580613,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.read","value":2432555,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.write","value":10000307,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_packets.rx","value":324979472,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_packets.tx","value":318176911,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.rx","value":194785198103,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.tx","value":208560789047,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"eth0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_packets.rx","value":658839034,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_packets.tx","value":658839034,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.rx","value":77679727321,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.tx","value":77679727321,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":8167,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":5050146,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":86.9,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":5.71715145436309,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":2.60782347041123,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":91.6750250752257,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838305792,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836558848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5368728637695,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4631233215332,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15718715392,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15726370816,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838305792,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836558848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5368728637695,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4631233215332,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.shortterm","value":0.51,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.midterm","value":0.48,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.longterm","value":0.43,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":17044008960,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3149824,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"buffered","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5809135616,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"cached","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3273187328,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":134148096,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_unrecl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5189111808,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_recl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":4186521600,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":1629106176,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":3778080,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":1833520,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":1713794,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":1.50564617314931,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":5.17953634262085,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":319194345,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":10575684766963,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":14044511371,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":6835572139,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":136478169,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":215752646,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":917709,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":13037871104,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":478445568,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":12518660,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":372156,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":315618,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.200752823086575,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.checkandput_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tabletlookup_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tabletlookup_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.importbucket_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.importsegment_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.append_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.updateandget_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.checkandput_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_rpcrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.append_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.updateandget_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.checkandput_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.reads","value":2,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.read_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.writes","value":2,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.io.write_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.produce_rpcs","value":33,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.produce_msgs","value":1681,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.produce_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_rpcs","value":173,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_msgs","value":3362,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.streams.listen_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.cdc.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.cdc.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.index.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.index.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.log_compaction.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.log_compaction.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.repl.sent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.repl.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_inode","value":1117,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_inode","value":7,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_smallfile","value":198,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_smallfile","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_largefile","value":582,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_largefile","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_meta","value":271,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_meta","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_dir","value":306,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_dir","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_table","value":306,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_table","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_data","value":1357,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_data","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.log.forceflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.btree.deletes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.thread.cpu_usage","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","thread_name":"Rpc","mfs_instance":"0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.thread.cpu_usage","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","thread_name":"FS","mfs_instance":"0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.thread.cpu_usage","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","thread_name":"DBMain","mfs_instance":"0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.rpc.calls_recd","value":360,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.rpc.bytes_recd","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.rpc.bytes_sent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_create","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_lookup","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_read","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_write","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.read_cachemisses","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.read_cachehits","value":21,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.writes","value":10,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.write_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_writes","value":68,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_packets.tx","value":658847168,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.rx","value":77680912958,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_octets.tx","value":77680912958,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"1","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"1","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4110857,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23235860,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_errors.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"1","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.rx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"interface.if_dropped.tx","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","interface_name":"lo","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"1","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_utilization","value":0.05,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":0.352941176470588,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":10.3529411764706,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.0006,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123356,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4110857,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23235860,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"1","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.read","value":1235175936,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.write","value":31237623808,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.read","value":29881,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.write","value":3187165,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.read","value":5623,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.write","value":9071075,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123356,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.0942828485456,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"1","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.10330992978937,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4093012,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23217393,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_utilization","value":0.05,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":0.4,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":11.7333333333333,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.0006,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123356,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.501504513540622,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4093012,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23217393,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.39518555667,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"2","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.90543259557344,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.804828973843058,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.2897384305835,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.900900900900901,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.600600600600601,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.read","value":1238075904,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.write","value":31236755456,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.read","value":29971,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.write","value":3436290,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.4954864593781,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"3","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.read","value":5612,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.write","value":8507698,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.7017017017017,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.900900900900901,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4110760,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23235513,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_utilization","value":0.3,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":97.3973973973974,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.10220440881764,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.501002004008016,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":3.96273291925466,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":30.9068322981366,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.3967935871744,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.798403193612774,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.19760479041916,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.0638,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4110760,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23235513,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.0039920159681,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":2.50752256770311,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.10330992978937,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.read","value":1235175936,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.write","value":31236755456,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.read","value":29881,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.write","value":3187065,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.read","value":5623,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.write","value":9070811,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":96.3891675025075,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5188837376,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_recl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":4186521600,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":1629106176,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":3778080,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":1833491,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":1713768,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":1.60743438402612,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":5.17953634262085,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":319188884,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":10575516798173,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":14044269715,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":6835461931,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":136475788,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":215748698,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":917695,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":13037871104,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":478445568,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":12518660,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":372152,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":315615,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.100464649001633,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":1.5211569070816,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":941737,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":505772040,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":7730043325,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":24974470,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":17227784,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":123878958,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":4858,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":9917804544,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":192946176,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":9453912,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":235947,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":140101,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.100464649001633,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":0.613447904586792,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":204024,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":32349464,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":14128,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":13797,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":141,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":84711671,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":4161,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":4061351936,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":1013395456,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":3714076,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":983919,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":738713,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.502323245008163,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":3.22196221351624,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":1192755,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":2890299395,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":549962393,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":8627157,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":6472538,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":226570537,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":12693,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":1702858752,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":43552768,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":1614008,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.repl.pending_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_inode","value":716,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_inode","value":8,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_smallfile","value":23,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_smallfile","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_largefile","value":305,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_largefile","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_meta","value":254,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_meta","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_dir","value":287,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_dir","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_table","value":287,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_table","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.lookups_data","value":869,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.cache.misses_data","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.log.forceflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.btree.deletes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.thread.cpu_usage","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","thread_name":"Rpc","mfs_instance":"0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.thread.cpu_usage","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","thread_name":"FS","mfs_instance":"0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.thread.cpu_usage","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","thread_name":"DBMain","mfs_instance":"0","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.rpc.calls_recd","value":364,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.rpc.bytes_recd","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.rpc.bytes_sent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_create","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_lookup","value":19,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_read","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.statstype_write","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.read_cachemisses","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.read_cachehits","value":28,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.writes","value":8,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.write_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_writes","value":64,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_writebytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.reads","value":8,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.read_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.bulk_writes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.bulk_writesbytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_reads","value":13,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_readbytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_insert","value":1,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_delete","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_lookup","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_scan","value":126,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_readrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_resprows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tablet_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.valuecache_usedSize","value":282,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.valuecache_lookups","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.valuecache_hits","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bloom_skips","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_rpcs","value":14,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_rpcrows","value":3217,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_readrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_bytes","value":162245,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tablet_puts","value":3246,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.resv_free","value":358,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_writes","value":63,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":24091649,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_utilization","value":0.33,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":6.53333333333333,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":101.333333333333,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.0098,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":8167,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":5050146,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":24091649,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sdb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.read","value":1238075904,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.write","value":31237197824,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.read","value":29971,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.write","value":3436345,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.read","value":5612,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.write","value":8507848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4110813,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23235682,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_utilization","value":0.04,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":0.785714285714286,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":10.2857142857143,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.0011,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4110813,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23235682,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.read","value":1235175936,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_octets.write","value":31237197824,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.read","value":29881,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_ops.write","value":3187115,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.read","value":5623,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_time.write","value":9070963,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4092968,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23217215,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_utilization","value":0.03,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":0.833333333333333,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.001,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4092968,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23217215,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838252544,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836612096,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5367813110352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4632225036621,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15718715392,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15726370816,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":1.5211569070816,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":941750,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":505772849,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":7730049833,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":24974607,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":17227878,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":123880580,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":4858,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":9917804544,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":192946176,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":9453912,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":235950,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":140102,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.100376411543287,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":0.613447904586792,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":204026,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":32349464,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":14128,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":13797,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":141,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":84713024,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":4161,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hbase-mapr-rest","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":4061351936,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":1013395456,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":3714076,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":983927,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":738724,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.501882057716437,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":3.22196221351624,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":1192769,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":2890331652,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":549970763,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":8627289,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":6472642,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":226576054,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":12693,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"apiserver","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":1702858752,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":43552768,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":1614008,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":130512,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":27972,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":0.138470500707626,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":548060,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":481895796,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":77726387,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":556210,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":113943,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":24031228,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":6619,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":8596307968,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":954458112,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":8153696,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":1483084,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":629733,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.702634880803011,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":3.03457832336426,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":1144612,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":7479098123,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_writebytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.reads","value":10,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.read_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.bulk_writes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.bulk_writesbytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_reads","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.local_readbytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_insert","value":4,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_delete","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_lookup","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.fs.kvstore_scan","value":127,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_readrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_resprows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tablet_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.get_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.valuecache_usedSize","value":282,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.valuecache_lookups","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.valuecache_hits","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_gets","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bloom_skips","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_rpcs","value":16,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_rpcrows","value":3831,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_readrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_bytes","value":192562,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tablet_puts","value":3861,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.put_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.resv_free","value":356,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_writes","value":67,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_writebytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.flushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.forceflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.segflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.minicompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.fullcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.ttlcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.curfullcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_creates","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_creates","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_resprows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_readrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_scans","value":127,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_scans","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_scans","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_scanrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.ldb_reads","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.block_reads","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_rasegments","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_raspills","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_raadviseranges","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_rablocks","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.updateandget_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.append_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.checkandput_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.increment_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.tabletlookup_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.4984984984985,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"4","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.2012012012012,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.700700700700701,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.0980980980981,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"5","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.501002004008016,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.501002004008016,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.997995991984,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"6","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":1.001001001001,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"user","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0.800800800800801,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"system","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"wait","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"nice","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"interrupt","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"softirq","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"steal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"cpu.percent","value":98.1981981981982,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","cpu_core":"7","cpu_class":"idle","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838031360,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836833280,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5363693237305,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4636344909668,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15718715392,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15726370816,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838031360,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836833280,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5363693237305,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4636344909668,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.shortterm","value":0.44,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.midterm","value":0.46,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.longterm","value":0.43,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":17038655488,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3149824,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"buffered","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5809209344,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"cached","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3278704640,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":134008832,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_unrecl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5189013504,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_recl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":4186660864,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":1629106176,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":3778216,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4092916,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23217047,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_utilization","value":0.3,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_await","value":3.96273291925466,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_requests_size","value":30.9068322981366,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_avg_queue_size","value":0.0638,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.read","value":170,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_merged.write","value":123352,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.pending_operations","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.io_time","value":4092916,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"disk.disk_io_time.weighted_io_time","value":23217047,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","disk_name":"sda1","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838305792,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836558848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5368728637695,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4631233215332,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"rootfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15718715392,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"devtmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":15726370816,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"tmpfs","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":44838305792,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.df_complex","value":8836558848,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":83.5368728637695,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"reserved","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"df.percent_bytes","value":16.4631233215332,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","df_partition":"sda1","df_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.shortterm","value":0.48,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.midterm","value":0.47,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"load.load.longterm","value":0.43,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":17039405056,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"used","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3149824,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"buffered","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5809000448,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"cached","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":3278168064,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"free","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":133996544,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_unrecl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"memory.memory","value":5189021696,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","memory_type":"slab_recl","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":4186521600,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":1629106176,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":3778080,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":1833484,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":1713759,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":2.00425905048228,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":5.17953634262085,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":319187507,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":10575435870233,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":14044178572,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":6835418030,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":136474755,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":215747576,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":917692,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"collectd","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":13037871104,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":478445568,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":12518660,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":372151,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":315615,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"zookeeper_server","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":130511,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":27972,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.100464649001633,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":0.138470500707626,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":548060,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":481895732,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":77726325,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":556206,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":113941,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":24030867,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":6619,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"grafana","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":8596307968,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":954458112,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":8153696,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":1483063,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":629726,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.80371719201306,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":3.03457832336426,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":1144608,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":7478975617,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":5158625100,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":97245181,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":39522220,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":222118383,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":32654,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"cldb","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":573689856,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":109244416,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":488500,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":101967,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":230284,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":0.347328752279282,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":2897405,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":17110818188,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":48172884,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":54310735,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":564005,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":28929979,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":3343,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"hoststats","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":6088196096,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":146923520,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":5726944,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":292940,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":179458,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.200929298003265,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":0.467124670743942,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.minflt","value":344034,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.page_faults.majflt","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.read","value":1706690871229,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_octets.write","value":1442749590,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.read","value":986487354,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.disk_ops.write","value":33139545,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_voluntary","value":85947789,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.context_switch_involuntary","value":19394,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"warden","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.vm","value":8545239040,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"gateway","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.rss","value":399749120,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"gateway","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.data","value":8076780,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"gateway","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.user","value":279327,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"gateway","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_time.syst","value":169874,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"gateway","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.cpu_percent","value":0.200929298003265,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"gateway","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.process.mem_percent","value":1.270951628685,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","process_name":"gateway","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_writebytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.flushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.forceflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.segflushes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.minicompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.fullcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.ttlcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.curfullcompacts","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_creates","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_creates","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_rpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_resprows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_readrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_bytes","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.scan_currpcs","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.bucket_scans","value":126,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.seg_scans","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_scans","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.spill_scanrows","value":0,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric":"mapr.db.ldb_reads","value":12,"tags":{"fqdn":"mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid":"7616098736519857348","clustername":"demo"}}] +[{"metric": "mapr.db.table.latency","buckets": {"2,5": 21,"5,10": 11},"tags": {"table_fid": "2070.42.262546","table_path": "/var/mapr/mapr.monitoring/tsdb-meta","noindex": "//primary","rpc_type": "put","fqdn": "mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid" : "7616098736519857348","clustername" : "demo"}}] +[{"metric": "mapr.db.table.latency","buckets": {"2,5": 40,"5,10": 30,"10,25": 5},"tags": {"table_fid": "2070.36.262534","table_path": "/var/mapr/mapr.monitoring/tsdb","noindex": "//primary","rpc_type": "put","fqdn": "mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid" : "7616098736519857348","clustername" : "demo"}}] +[{"metric": "mapr.db.table.latency","buckets": {"2,5": 20,"5,10": 12,"10,25": 1},"tags": {"table_fid": "2070.42.262546","table_path": "/var/mapr/mapr.monitoring/tsdb-meta","noindex": "//primary","rpc_type": "put","fqdn": "mapr-lab-2-dhk4.c.datadog-integrations-lab.internal","clusterid" : "7616098736519857348","clustername" : "demo"}}] diff --git a/mapr/tests/test_mapr.py b/mapr/tests/test_mapr.py deleted file mode 100644 index b79daa009d212..0000000000000 --- a/mapr/tests/test_mapr.py +++ /dev/null @@ -1,92 +0,0 @@ -# (C) Datadog, Inc. 2019 -# All rights reserved -# Licensed under a 3-clause BSD style license (see LICENSE) -import pytest - -from datadog_checks.mapr import MaprCheck - -from .common import KAFKA_METRIC - - -@pytest.mark.unit -def test_whitelist(instance): - instance['whitelist'] = ['fs.*', 'db.*'] - check = MaprCheck('mapr', {}, {}, [instance]) - - assert check.should_collect_metric('mapr.fs.read_cachemisses') - assert check.should_collect_metric('mapr.db.get_currpcs') - assert not check.should_collect_metric('mapr.cache.misses_largefile') - - -@pytest.mark.unit -def test_submit_gauge(instance, aggregator): - check = MaprCheck('mapr', {}, {}, [instance]) - check.submit_metric(KAFKA_METRIC, []) - - aggregator.assert_metric( - 'mapr.process.context_switch_involuntary', - value=6308, - tags=[ - 'clustername:demo', - 'process_name:apiserver', - 'clusterid:7616098736519857348', - 'fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', - ], - ) - - -@pytest.mark.unit -def test_submit_gauge_additional_tags(instance, aggregator): - check = MaprCheck('mapr', {}, {}, [instance]) - check.submit_metric(KAFKA_METRIC, ['foo:bar', 'baz:biz']) - - aggregator.assert_metric( - 'mapr.process.context_switch_involuntary', - tags=[ - 'clustername:demo', - 'process_name:apiserver', - 'clusterid:7616098736519857348', - 'fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', - 'foo:bar', - 'baz:biz', - ], - ) - - -@pytest.mark.unit -def test_submit_bucket(instance, aggregator): - kafka_metric = { - "metric": "mapr.db.table.latency", - "buckets": {"2,5": 10, "5,10": 21}, - "tags": { - "table_fid": "2070.36.262534", - "table_path": "/var/mapr/mapr.monitoring/tsdb", - "noindex": "//primary", - "rpc_type": "put", - "fqdn": "mapr-lab-2-ghs6.c.datadog-integrations-lab.internal", - "clusterid": "7616098736519857348", - "clustername": "demo", - }, - } - check = MaprCheck('mapr', {}, {}, [instance]) - check.submit_metric(kafka_metric, []) - expected_tags = [ - "clusterid:7616098736519857348", - "clustername:demo", - "fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal", - "noindex://primary", - "rpc_type:put", - "table_fid:2070.36.262534", - "table_path:/var/mapr/mapr.monitoring/tsdb", - ] - - aggregator.assert_histogram_bucket('mapr.db.table.latency', 10, 2, 5, True, 'stubbed.hostname', expected_tags) - aggregator.assert_histogram_bucket('mapr.db.table.latency', 21, 5, 10, True, 'stubbed.hostname', expected_tags) - aggregator.assert_all_metrics_covered() # No metrics submitted - - -def test_check(aggregator, instance): - check = MaprCheck('mapr', {}, {}, [instance]) - check.check(instance) - - aggregator.assert_all_metrics_covered() diff --git a/mapr/tests/test_unit.py b/mapr/tests/test_unit.py new file mode 100644 index 0000000000000..23f7aaffaf24e --- /dev/null +++ b/mapr/tests/test_unit.py @@ -0,0 +1,113 @@ +# (C) Datadog, Inc. 2019 +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +import pytest +from six import iteritems + +from datadog_checks.mapr import MaprCheck +from datadog_checks.mapr.common import ALLOWED_METRICS, COUNT_METRICS, GAUGE_METRICS, MONOTONIC_COUNTER_METRICS +from datadog_checks.mapr.utils import get_stream_id_for_topic + +from .common import DISTRIBUTION_METRIC, KAFKA_METRIC, METRICS_IN_FIXTURE, STREAM_ID_FIXTURE + + +@pytest.mark.unit +def test_metrics_constants(): + """Make sure those sets have a two-by-two empty intersection""" + for m in ALLOWED_METRICS: + total = 0 + if m in GAUGE_METRICS: + total += 1 + elif m in COUNT_METRICS: + total += 1 + elif m in MONOTONIC_COUNTER_METRICS: + total += 1 + + assert total == 1 + + +@pytest.mark.unit +def test_get_stream_id(): + for (text, rng), value in iteritems(STREAM_ID_FIXTURE): + assert get_stream_id_for_topic(text, rng=rng) == value + + +@pytest.mark.unit +@pytest.mark.usefixtures("mock_fqdn") +def test_whitelist(instance): + instance['metric_whitelist'] = [r'mapr\.fs.*', r'mapr\.db.*'] + check = MaprCheck('mapr', {}, [instance]) + + for m in ALLOWED_METRICS: + if m.startswith('mapr.fs') or m.startswith('mapr.db'): + assert check.should_collect_metric(m) + else: + assert not check.should_collect_metric(m) + + +@pytest.mark.unit +@pytest.mark.usefixtures("mock_fqdn") +def test_submit_gauge(instance, aggregator): + check = MaprCheck('mapr', {}, [instance]) + check.submit_metric(KAFKA_METRIC) + + aggregator.assert_metric( + 'mapr.process.context_switch_involuntary', + value=6308, + tags=[ + 'clustername:demo', + 'process_name:apiserver', + 'clusterid:7616098736519857348', + 'fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', + ], + ) + + +@pytest.mark.unit +@pytest.mark.usefixtures("mock_fqdn") +def test_submit_gauge_additional_tags(instance, aggregator): + instance['tags'] = ["foo:bar", "baz:biz"] + check = MaprCheck('mapr', {}, [instance]) + check.submit_metric(KAFKA_METRIC) + + aggregator.assert_metric( + 'mapr.process.context_switch_involuntary', + tags=[ + 'clustername:demo', + 'process_name:apiserver', + 'clusterid:7616098736519857348', + 'fqdn:mapr-lab-2-ghs6.c.datadog-integrations-lab.internal', + 'foo:bar', + 'baz:biz', + ], + ) + + +@pytest.mark.unit +@pytest.mark.usefixtures("mock_fqdn") +def test_submit_bucket(instance, aggregator): + check = MaprCheck('mapr', {}, [instance]) + check.submit_metric(DISTRIBUTION_METRIC) + expected_tags = [ + "clusterid:7616098736519857348", + "clustername:demo", + "fqdn:mapr-lab-2-dhk4.c.datadog-integrations-lab.internal", + "noindex://primary", + "rpc_type:put", + "table_fid:2070.42.262546", + "table_path:/var/mapr/mapr.monitoring/tsdb-meta", + ] + aggregator.assert_histogram_bucket('mapr.db.table.latency', 21, 2, 5, True, 'stubbed.hostname', expected_tags) + aggregator.assert_histogram_bucket('mapr.db.table.latency', 11, 5, 10, True, 'stubbed.hostname', expected_tags) + aggregator.assert_all_metrics_covered() # No metrics submitted + + +@pytest.mark.usefixtures("mock_getconnection") +@pytest.mark.usefixtures("mock_fqdn") +def test_check(aggregator, instance): + check = MaprCheck('mapr', {}, [instance]) + check.check(instance) + + for m in METRICS_IN_FIXTURE: + aggregator.assert_metric(m) + aggregator.assert_all_metrics_covered() From 85e03a742f00b3579a2ea9e3d392f8051d9551b2 Mon Sep 17 00:00:00 2001 From: "florian.veaux" Date: Mon, 7 Oct 2019 11:05:37 +0200 Subject: [PATCH 05/19] Add MapR to azure pipelines --- .azure-pipelines/all.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.azure-pipelines/all.yml b/.azure-pipelines/all.yml index 932fb38e48076..4c087e55d56d3 100644 --- a/.azure-pipelines/all.yml +++ b/.azure-pipelines/all.yml @@ -198,6 +198,9 @@ jobs: - checkName: linux_proc_extras displayName: Linux proc extras os: linux + - checkName: mapr + displayName: MapR + os: linux - checkName: mapreduce displayName: MapReduce os: linux From 7a554f14d9de912989bfe637ba3fcf9d741c85da Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Mon, 7 Oct 2019 11:23:31 +0200 Subject: [PATCH 06/19] Update mapr/README.md Co-Authored-By: Pierre Guceski --- mapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/README.md b/mapr/README.md index cd68396e54a19..0e5a7f798ea2b 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -12,7 +12,7 @@ Follow the instructions below to install and configure this check for an Agent r The MapR check is included in the [Datadog Agent][2] package but requires additional setup operations. -1. Add `/opt/mapr/lib/` to your `ld.so.conf` file. The agent uses the mapr-streams-python library which requires access to some shared libraries. +1. Add `/opt/mapr/lib/` to your `ld.so.conf` file. The Agent uses the *mapr-streams-python* library which requires access to some shared libraries. 2. Create a password for the `dd-agent` user, then add this user to every node of the cluster with the same `UID`/`GID` so it is recognized by MapR. See [Managing users and groups][10] for additional details. 3. Install the agent on every host you want to monitor. 4. Generate a [long-lived ticket][8] for the `dd-agent` user. From 94240c4c994b4a8b93accc857ecbd8bf98d2121d Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Mon, 7 Oct 2019 11:23:42 +0200 Subject: [PATCH 07/19] Update mapr/README.md Co-Authored-By: Pierre Guceski --- mapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/README.md b/mapr/README.md index 0e5a7f798ea2b..9d9c965ce421a 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -29,7 +29,7 @@ The MapR check is included in the [Datadog Agent][2] package but requires additi #### Log collection MapR uses fluentD for logs. Use the [fluent datadog plugin][11] to collect MapR logs. -The following command will download and install the plugin into the right directory. +The following command downloads and installs the plugin into the right directory. `curl https://raw.githubusercontent.com/DataDog/fluent-plugin-datadog/master/lib/fluent/plugin/out_datadog.rb -o /opt/mapr/fluentd/fluentd-/lib/fluentd--linux-x86_64/lib/app/lib/fluent/plugin/out_datadog.rb` From 0f4e827613ea1f4eca646b319623b19846cb0300 Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Mon, 7 Oct 2019 18:30:57 +0200 Subject: [PATCH 08/19] Update mapr/README.md Co-Authored-By: Alexandre Yang --- mapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/README.md b/mapr/README.md index 9d9c965ce421a..e7ba0db85714e 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -39,7 +39,7 @@ Then update the `/opt/mapr/fluentd/fluentd-/etc/fluentd/fluentd.conf` w @type copy # This section is here by default and sends the logs to ElasticCache for Kibana. - @include /opt/mapr/fluentd/fluentd-1.4.0/etc/fluentd/es_config.conf + @include /opt/mapr/fluentd/fluentd-/etc/fluentd/es_config.conf include_tag_key true tag_key service_name From 379d921104d57882a879971ffab5f72c5d7562f7 Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Mon, 7 Oct 2019 18:32:22 +0200 Subject: [PATCH 09/19] Update mapr/README.md Co-Authored-By: Pierre Guceski --- mapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/README.md b/mapr/README.md index e7ba0db85714e..ff158f523d2a3 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -14,7 +14,7 @@ The MapR check is included in the [Datadog Agent][2] package but requires additi 1. Add `/opt/mapr/lib/` to your `ld.so.conf` file. The Agent uses the *mapr-streams-python* library which requires access to some shared libraries. 2. Create a password for the `dd-agent` user, then add this user to every node of the cluster with the same `UID`/`GID` so it is recognized by MapR. See [Managing users and groups][10] for additional details. -3. Install the agent on every host you want to monitor. +3. Install the Agent on every host you want to monitor. 4. Generate a [long-lived ticket][8] for the `dd-agent` user. 5. Make sure the ticket is readable by the `dd-agent` user. From adb7c0bdefe6ce14ebe97074f502975b31efba46 Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Mon, 7 Oct 2019 18:33:02 +0200 Subject: [PATCH 10/19] Update mapr/README.md Co-Authored-By: Alexandre Yang --- mapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/README.md b/mapr/README.md index ff158f523d2a3..53d51087005f0 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -70,7 +70,7 @@ See [metadata.csv][13] for a list of default metrics provided by this integratio ### Service Checks - `mapr.can_connect`: -Returns CRITICAL if the Agent fails to connect to the MapR monitoring streams, otherwise returns UP. +Returns `CRITICAL` if the Agent fails to connect and subscribe to the stream topic, `OK` otherwise. ### Events From e70501f890ed3a2c9986ae4e8bd5c7d4f257d0db Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Tue, 8 Oct 2019 10:23:20 +0200 Subject: [PATCH 11/19] Update mapr/assets/service_checks.json Co-Authored-By: Alexandre Yang --- mapr/assets/service_checks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/assets/service_checks.json b/mapr/assets/service_checks.json index 1e58e351726c4..2671d874ff8eb 100644 --- a/mapr/assets/service_checks.json +++ b/mapr/assets/service_checks.json @@ -6,6 +6,6 @@ "statuses": ["ok", "critical"], "groups": ["topic"], "name": "Can connect and subscribe to mapr topic", - "description": "Returns `CRITICAL` if the agent fails to subscribe to the stream topic, `OK` otherwise." + "description": "Returns `CRITICAL` if the Agent fails to connect and subscribe to the stream topic, `OK` otherwise." } ] From ddb2bb6888e6d6b6bbda04e246a2703527414d25 Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Tue, 8 Oct 2019 10:24:25 +0200 Subject: [PATCH 12/19] Update mapr/datadog_checks/mapr/common.py Co-Authored-By: Alexandre Yang --- mapr/datadog_checks/mapr/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/datadog_checks/mapr/common.py b/mapr/datadog_checks/mapr/common.py index d18a59c8b33b6..cc2911c9e919e 100644 --- a/mapr/datadog_checks/mapr/common.py +++ b/mapr/datadog_checks/mapr/common.py @@ -168,4 +168,4 @@ 'mapr.volume.used', } -ALLOWED_METRICS = GAUGE_METRICS.union(COUNT_METRICS).union(MONOTONIC_COUNTER_METRICS) +ALLOWED_METRICS = GAUGE_METRICS | COUNT_METRICS | MONOTONIC_COUNTER_METRICS From 1105ad33f9fc44fc9aea0afb86a244bef4b9f1a5 Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Tue, 8 Oct 2019 11:49:02 +0200 Subject: [PATCH 13/19] Update mapr/datadog_checks/mapr/mapr.py Co-Authored-By: Alexandre Yang --- mapr/datadog_checks/mapr/mapr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py index 5bb6c9fcc8cc9..757f049747f42 100644 --- a/mapr/datadog_checks/mapr/mapr.py +++ b/mapr/datadog_checks/mapr/mapr.py @@ -55,7 +55,7 @@ def __init__(self, name, init_config, instances): if auth_ticket: os.environ['MAPR_TICKETFILE_LOCATION'] = auth_ticket elif not os.environ.get('MAPR_TICKETFILE_LOCATION'): - self.log.info("MAPR_TICKETFILE_LOCATION environment variable not set, this may cause authentication issues") + self.log.warn("MAPR_TICKETFILE_LOCATION environment variable not set, this may cause authentication issues") def check(self, _): if ck is None: From 8aff53a131dd262997cf72c6c0a25e0c021cfdfc Mon Sep 17 00:00:00 2001 From: "florian.veaux" Date: Tue, 8 Oct 2019 13:37:07 +0200 Subject: [PATCH 14/19] Address reviews --- mapr/README.md | 7 +- mapr/datadog_checks/mapr/common.py | 2 + .../mapr/data/conf.yaml.example | 26 +++--- mapr/datadog_checks/mapr/mapr.py | 20 ++-- mapr/datadog_checks/mapr/utils.py | 7 +- mapr/tests/README.md | 14 +++ mapr/tests/common.py | 91 +------------------ 7 files changed, 57 insertions(+), 110 deletions(-) create mode 100644 mapr/tests/README.md diff --git a/mapr/README.md b/mapr/README.md index 53d51087005f0..d26c7064d213f 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -12,19 +12,20 @@ Follow the instructions below to install and configure this check for an Agent r The MapR check is included in the [Datadog Agent][2] package but requires additional setup operations. -1. Add `/opt/mapr/lib/` to your `ld.so.conf` file. The Agent uses the *mapr-streams-python* library which requires access to some shared libraries. +1. Add `/opt/mapr/lib/` to your `ld.so.conf` file (usually in `/etc`). This will help the *mapr-streams-library* used by the agent find the required shared libraries. 2. Create a password for the `dd-agent` user, then add this user to every node of the cluster with the same `UID`/`GID` so it is recognized by MapR. See [Managing users and groups][10] for additional details. 3. Install the Agent on every host you want to monitor. 4. Generate a [long-lived ticket][8] for the `dd-agent` user. 5. Make sure the ticket is readable by the `dd-agent` user. +6. Configure the integration (see below) ### Configuration #### Metric collection 1. Edit the `mapr.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to collect your MapR performance data. See the [sample mapr.d/conf.yaml][3] for all available configuration options. - -2. [Restart the Agent][4]. +2. Set the `ticket_location` parameter to a path to the long-lived ticket you have created. +3. [Restart the Agent][4]. #### Log collection diff --git a/mapr/datadog_checks/mapr/common.py b/mapr/datadog_checks/mapr/common.py index cc2911c9e919e..589e1e1ea94c9 100644 --- a/mapr/datadog_checks/mapr/common.py +++ b/mapr/datadog_checks/mapr/common.py @@ -2,6 +2,8 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +HISTOGRAM_METRICS = {'mapr.db.table.latency'} + COUNT_METRICS = { 'mapr.cache.lookups_data', 'mapr.cache.lookups_dir', diff --git a/mapr/datadog_checks/mapr/data/conf.yaml.example b/mapr/datadog_checks/mapr/data/conf.yaml.example index a9d5823e4d3c4..f26ac0f77a937 100644 --- a/mapr/datadog_checks/mapr/data/conf.yaml.example +++ b/mapr/datadog_checks/mapr/data/conf.yaml.example @@ -2,6 +2,12 @@ init_config: instances: - + ## @param ticket_location - string - optional + ## The path to the MapR user ticket, if included it overrides the MAPR_TICKETFILE_LOCATION environment variable. + ## Either the environment variable or this config option needs to be set if security is enabled on the cluster. + # + # ticket_location: + ## @param hostname - string - optional - default: `socket.getfqdn()` ## The MapR host to monitor. This is used to find the correct topic to read metrics from. ## https://mapr.com/docs/61/AdministratorGuide/spyglass-on-streams.html @@ -13,27 +19,21 @@ instances: # # stream_path: /var/mapr/mapr.monitoring/metricstreams - ## @param streams_count - integer - optional - default: 2 - ## The mapr setting for the number of monitoring streams. - ## If this value does not exactly match what you've configured on mapr, - ## the integration will not be able to find the correct topic to read metrics from. - ## See https://mapr.com/docs/61/AdministratorGuide/spyglass-on-streams.html for more information - # - # streams_count: 2 - ## @param metric_whitelist - list - optional ## List of regexes for metrics to collect. Note that you can only collect metrics starting with "mapr.", ## see https://github.com/DataDog/integrations-core/blob/master/mapr/datadog_checks/mapr/common.py ## for the list of metrics you can collect. ## Collect all mapr related metrics by default # - # metric_whitelist: ['.*'] + # metric_whitelist: + # - '.*' - ## @param ticket_location - string - optional - ## The path to the MapR user ticket, if included it overrides the MAPR_TICKETFILE_LOCATION environment variable. - ## Either the environment variable or this config option needs to be set if security is enabled on the cluster. + ## @param streams_count - integer - optional - default: 1 + ## The mapr setting for the number of monitoring streams. + ## Changing the number of MaprR monitoring streams is a deprecated process, only change this if you + ## use more than one. # - # ticket_location: + # streams_count: 1 ## @param tags - list of key:value elements - optional ## A list of tags to attach to every metric, event, and service check emitted by this integration. diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py index 757f049747f42..a788efbc9644a 100644 --- a/mapr/datadog_checks/mapr/mapr.py +++ b/mapr/datadog_checks/mapr/mapr.py @@ -10,11 +10,12 @@ from datadog_checks.base import AgentCheck, ensure_unicode from datadog_checks.base.errors import CheckException -from .common import ALLOWED_METRICS, COUNT_METRICS, GAUGE_METRICS, MONOTONIC_COUNTER_METRICS +from .common import ALLOWED_METRICS, COUNT_METRICS, GAUGE_METRICS, HISTOGRAM_METRICS, MONOTONIC_COUNTER_METRICS from .utils import get_fqdn, get_stream_id_for_topic try: - # The `confluent_kafka` library here is the one made by mapr + # This is not the regular `confluent_kafka` but rather the custom version made by MapR + # that you can install with "pip install mapr-streams-python" import confluent_kafka as ck except ImportError: ck = None @@ -41,7 +42,7 @@ def __init__(self, name, init_config, instances): super(MaprCheck, self).__init__(name, init_config, instances) self._conn = None self.hostname = self.instance.get('hostname', get_fqdn()) - self.streams_count = self.instance.get('streams_count', 2) + self.streams_count = self.instance.get('streams_count', 1) self.topic_path = "{stream_path}/{stream_id}:{topic_name}".format( stream_path=self.instance.get('stream_path', DEFAULT_STREAM_PATH), stream_id=get_stream_id_for_topic(self.hostname, rng=self.streams_count), @@ -71,10 +72,14 @@ def check(self, _): SERVICE_CHECK, AgentCheck.CRITICAL, self.base_tags + ['topic_path:{}'.format(self.topic_path)] ) raise + else: + self.service_check(SERVICE_CHECK, AgentCheck.OK, self.base_tags + ['topic:{}'.format(self.topic_path)]) submitted_metrics_count = 0 while True: + # Collecting one message at a time has no impact on performance because the library + # batches data. Most calls to `poll` won't initiate a I/O connection. msg = conn.poll(timeout=0.5) if msg is None: # Timed out, no more messages @@ -94,18 +99,19 @@ def check(self, _): self.log.warning("Received unexpected message %s, wont be processed", msg.value()) self.log.exception(e) elif msg.error().code() != ck.KafkaError._PARTITION_EOF: - # Real error happened + # Partition EOF is expected anytime we reach the end of one partition in the topic. + # This is expected at least once per partition per check run. raise CheckException(msg.error()) if not submitted_metrics_count and not self.is_first_check_run: self.log.error("No metric to fetch in topic {}. Double-check the topic name and path", self.topic_path) self.gauge(METRICS_SUBMITTED_METRIC_NAME, submitted_metrics_count, self.base_tags) - self.service_check(SERVICE_CHECK, AgentCheck.OK, self.base_tags + ['topic:{}'.format(self.topic_path)]) self.is_first_check_run = False def get_connection(self): if self._conn: + # confluent_kafka takes care of recreating the connection if anything goes wrong. return self._conn self._conn = ck.Consumer( @@ -138,11 +144,11 @@ def submit_metric(self, metric): metric_name = metric['metric'] tags = self.base_tags + ["{}:{}".format(k, v) for k, v in iteritems(metric['tags'])] - if 'buckets' in metric: + if 'buckets' in metric and metric_name in HISTOGRAM_METRICS: for bounds, value in metric['buckets'].items(): lower, upper = bounds.split(',') self.submit_histogram_bucket( - metric_name, value, int(lower), int(upper), monotonic=True, hostname=self.hostname, tags=tags + metric_name, value, int(lower), int(upper), monotonic=False, hostname=self.hostname, tags=tags ) else: if metric_name in GAUGE_METRICS: diff --git a/mapr/datadog_checks/mapr/utils.py b/mapr/datadog_checks/mapr/utils.py index feb50f6ce735c..1cd51ac86800e 100644 --- a/mapr/datadog_checks/mapr/utils.py +++ b/mapr/datadog_checks/mapr/utils.py @@ -7,7 +7,12 @@ def get_stream_id_for_topic(topic_name, rng=2): """To distribute load, all the topics are not in the same stream. Each topic named is hashed - to obtain an id which is in turn the name of the stream""" + to obtain an id which is in turn the name of the stream. + This uses the djb2 algorithm, as described here + https://mapr.com/docs/60/AdministratorGuide/spyglass-on-streams.html""" + if rng == 1: + return 0 + h = 5381 for c in topic_name: h = ((h << 5) + h) + ord(c) diff --git a/mapr/tests/README.md b/mapr/tests/README.md new file mode 100644 index 0000000000000..237eb604121cf --- /dev/null +++ b/mapr/tests/README.md @@ -0,0 +1,14 @@ +# How to setup a test environment for MapR + + +Create multiple VMs (on gcp in an instance group for example) running CentOS 7. +Note: You'll need at least 32GB of memory per VM, yes 32GB. +Run this script on all the VMs: +``` +sudo yum -y install java-1.8.0-openjdk-devel +curl https://package.mapr.com/releases/installer/mapr-setup.sh -o /tmp/mapr-setup.sh +``` + +You can then ssh into one node and follow the process described [here](https://mapr.com/docs/61/MapRInstaller.html) to +start the installer, it starts a web interface from which you can start to actually install MapR on every node +in the cluster. diff --git a/mapr/tests/common.py b/mapr/tests/common.py index 378d69f4c1a11..f788c4ab42ad8 100644 --- a/mapr/tests/common.py +++ b/mapr/tests/common.py @@ -141,94 +141,13 @@ STREAM_ID_FIXTURE = { - ('dapilufuco61', 1): 0, - ('dapilufuco61', 2): 0, - ('dapilufuco61', 3): 1, - ('dapilufuco61', 4): 0, - ('dapilufuco61', 5): 0, - ('dapilufuco61', 6): 4, - ('dapilufuco61', 7): 1, - ('dapilufuco61', 8): 0, - ('dapilufuco61', 9): 4, - ('giwanoyoki81', 1): 0, - ('giwanoyoki81', 2): 1, - ('giwanoyoki81', 3): 1, - ('giwanoyoki81', 4): 3, - ('giwanoyoki81', 5): 0, - ('giwanoyoki81', 6): 1, - ('giwanoyoki81', 7): 0, - ('giwanoyoki81', 8): 7, - ('giwanoyoki81', 9): 7, - ('juzisumoya51', 1): 0, - ('juzisumoya51', 2): 1, - ('juzisumoya51', 3): 1, - ('juzisumoya51', 4): 3, - ('juzisumoya51', 5): 1, - ('juzisumoya51', 6): 1, - ('juzisumoya51', 7): 3, - ('juzisumoya51', 8): 3, - ('juzisumoya51', 9): 7, - ('ligokiboda25', 1): 0, - ('ligokiboda25', 2): 1, - ('ligokiboda25', 3): 2, - ('ligokiboda25', 4): 1, - ('ligokiboda25', 5): 2, - ('ligokiboda25', 6): 5, - ('ligokiboda25', 7): 2, - ('ligokiboda25', 8): 1, - ('ligokiboda25', 9): 2, - ('linidojajo26', 1): 0, + ('pafuvonuki94', 1): 0, ('linidojajo26', 2): 0, - ('linidojajo26', 3): 0, - ('linidojajo26', 4): 0, - ('linidojajo26', 5): 1, - ('linidojajo26', 6): 0, - ('linidojajo26', 7): 3, - ('linidojajo26', 8): 0, - ('linidojajo26', 9): 3, - ('nuwahibicu11', 1): 0, - ('nuwahibicu11', 2): 0, ('nuwahibicu11', 3): 1, - ('nuwahibicu11', 4): 2, - ('nuwahibicu11', 5): 2, - ('nuwahibicu11', 6): 4, - ('nuwahibicu11', 7): 5, - ('nuwahibicu11', 8): 6, - ('nuwahibicu11', 9): 1, - ('pafuvonuki94', 1): 0, - ('pafuvonuki94', 2): 0, - ('pafuvonuki94', 3): 1, - ('pafuvonuki94', 4): 2, - ('pafuvonuki94', 5): 0, - ('pafuvonuki94', 6): 4, - ('pafuvonuki94', 7): 2, - ('pafuvonuki94', 8): 2, - ('pafuvonuki94', 9): 7, - ('rigugepihi22', 1): 0, - ('rigugepihi22', 2): 0, - ('rigugepihi22', 3): 2, - ('rigugepihi22', 4): 2, - ('rigugepihi22', 5): 4, - ('rigugepihi22', 6): 2, + ('ligokiboda25', 4): 1, + ('yufidaxare27', 5): 4, + ('juzisumoya51', 6): 1, ('rigugepihi22', 7): 5, - ('rigugepihi22', 8): 6, - ('rigugepihi22', 9): 8, - ('wutetusaba14', 1): 0, - ('wutetusaba14', 2): 1, - ('wutetusaba14', 3): 1, - ('wutetusaba14', 4): 3, - ('wutetusaba14', 5): 1, - ('wutetusaba14', 6): 1, - ('wutetusaba14', 7): 5, - ('wutetusaba14', 8): 7, + ('giwanoyoki81', 8): 7, ('wutetusaba14', 9): 4, - ('yufidaxare27', 1): 0, - ('yufidaxare27', 2): 0, - ('yufidaxare27', 3): 1, - ('yufidaxare27', 4): 0, - ('yufidaxare27', 5): 4, - ('yufidaxare27', 6): 4, - ('yufidaxare27', 7): 6, - ('yufidaxare27', 8): 0, - ('yufidaxare27', 9): 4, } From 131414fc5b204ef40f1b5a09ea141f6c1d04de91 Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Tue, 8 Oct 2019 13:37:28 +0200 Subject: [PATCH 15/19] Update mapr/datadog_checks/mapr/mapr.py Co-Authored-By: cswatt --- mapr/datadog_checks/mapr/mapr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py index a788efbc9644a..5b4a48da49773 100644 --- a/mapr/datadog_checks/mapr/mapr.py +++ b/mapr/datadog_checks/mapr/mapr.py @@ -32,7 +32,7 @@ to the topic relevant to the current host and consume everything. Note: The MapR documentation https://mapr.com/docs/61/AdministratorGuide/spyglass-on-streams.html states that -there is one topic per host per metric name. This is wrong starting with 6.1+, there is only one topic per host now. +there is one topic per host per metric name. This is no longer true starting with 6.1+, there is only one topic per host now. To support older versions of MapR, the check should be updated to subscribe those multiple topics. """ From 2b033efd45d2810433707cbf9c3b6945b9019456 Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Tue, 8 Oct 2019 13:37:41 +0200 Subject: [PATCH 16/19] Update mapr/README.md Co-Authored-By: cswatt --- mapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/README.md b/mapr/README.md index d26c7064d213f..5011c95b7fac4 100644 --- a/mapr/README.md +++ b/mapr/README.md @@ -55,7 +55,7 @@ Then update the `/opt/mapr/fluentd/fluentd-/etc/fluentd/fluentd.conf` w ``` -Refer to [fluent_datadog_plugin][11] documentation for more details about the option you can use. +Refer to [fluent_datadog_plugin][11] documentation for more details about the options you can use. ### Validation From 35a2cb593bf3318f2d3a02894348b80863af7acf Mon Sep 17 00:00:00 2001 From: FlorianVeaux Date: Tue, 8 Oct 2019 13:37:53 +0200 Subject: [PATCH 17/19] Update mapr/datadog_checks/mapr/mapr.py Co-Authored-By: cswatt --- mapr/datadog_checks/mapr/mapr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py index 5b4a48da49773..ce16e7072c7ca 100644 --- a/mapr/datadog_checks/mapr/mapr.py +++ b/mapr/datadog_checks/mapr/mapr.py @@ -26,7 +26,7 @@ SERVICE_CHECK = "mapr.can_connect" """ -All mapr metrics go through a Stream topic (similar to a Kafka topic) and are consumed by OpenTSDB, a timeserie +All mapr metrics go through a Stream topic (similar to a Kafka topic) and are consumed by OpenTSDB, a timeseries database. All the metrics are distributed over multiple topics, one for each host. This way, the check instance can subscribe to the topic relevant to the current host and consume everything. From d0834306abc8b2861e09b3fb03bec8b73208a4da Mon Sep 17 00:00:00 2001 From: "florian.veaux" Date: Tue, 8 Oct 2019 14:16:54 +0200 Subject: [PATCH 18/19] Fix style --- mapr/datadog_checks/mapr/mapr.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mapr/datadog_checks/mapr/mapr.py b/mapr/datadog_checks/mapr/mapr.py index ce16e7072c7ca..270ca8be77c45 100644 --- a/mapr/datadog_checks/mapr/mapr.py +++ b/mapr/datadog_checks/mapr/mapr.py @@ -32,8 +32,8 @@ to the topic relevant to the current host and consume everything. Note: The MapR documentation https://mapr.com/docs/61/AdministratorGuide/spyglass-on-streams.html states that -there is one topic per host per metric name. This is no longer true starting with 6.1+, there is only one topic per host now. -To support older versions of MapR, the check should be updated to subscribe those multiple topics. +there is one topic per host per metric name. This is no longer true starting with 6.1+, there is only one topic per +host now. To support older versions of MapR, the check should be updated to subscribe those multiple topics. """ From 515e4f82fd9a4fffae38a5128b3f3be1ba13e528 Mon Sep 17 00:00:00 2001 From: "florian.veaux" Date: Fri, 11 Oct 2019 10:38:49 +0200 Subject: [PATCH 19/19] mapr.drill.queries_completed as monotonic count --- mapr/datadog_checks/mapr/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapr/datadog_checks/mapr/common.py b/mapr/datadog_checks/mapr/common.py index 589e1e1ea94c9..3dc09ba185b50 100644 --- a/mapr/datadog_checks/mapr/common.py +++ b/mapr/datadog_checks/mapr/common.py @@ -62,7 +62,6 @@ 'mapr.db.updateandget_rpcs', 'mapr.db.valuecache_hits', 'mapr.db.valuecache_lookups', - 'mapr.drill.queries_completed', 'mapr.fs.bulk_writes', 'mapr.fs.bulk_writesbytes', 'mapr.fs.kvstore_delete', @@ -100,6 +99,7 @@ MONOTONIC_COUNTER_METRICS = { 'mapr.cldb.containers_created', + 'mapr.drill.queries_completed', 'mapr.process.context_switch_involuntary', 'mapr.process.context_switch_voluntary', 'mapr.process.cpu_time.syst',