dd values kfuse customer.yaml
{ "fullnameOverride": "kfuse-agent", "nameOverride": "kfuse-agent", "datadog": { "logsEnabled": true, "logs": { "enabled": true, "containerCollectAll": true, "containerCollectUsingFiles": true, "autoMultiLineDetection": true, "dd_url": "http://kfuse-ingress-nginx-controller-internal.kfuse/ingester", "kubeStateMetricsEnabled": false, "kubeStateMetricsCore": { "enabled": true, "ignoreLegacyKSMCheck": true }, "networkMonitoring": { "enabled": false }, "orchestratorExplorer": { "enabled": true }, "apiKey": "798999171d8a0e80030b20366f2994f4", "env": [ {"name": "DD_CHECKS_TAG_CARDINALITY", "value": "orchestrator"}, {"name": "DD_CONTAINER_INCLUDE", "value": "kube_namespace:."}, {"name": "DD_CONTAINER_INCLUDE_LOGS", "value": "kube_namespace:."}, {"name": "DD_CONTAINER_EXCLUDE_METRICS", "value": "name:gclog."}, {"name": "DD_KUBERNETES_POD_LABELS_AS_TAGS", "value": "{"":"%%label%%"}"}, {"name": "DD_KUBERNETES_NODE_LABELS_AS_TAGS", "value": "{"":"%%label%%"}"}, {"name": "DD_LOGS_CONFIG_AUTO_MULTI_LINE_DEFAULT_MATCH_THRESHOLD", "value": "0.01"}, {"name": "DD_LOGS_CONFIG_AUTO_MULTI_LINE_EXTRA_PATTERNS", "value": "'^\d{4}/\d{2}/\d{2}\s\d{2}:\d{2}:\d{2}(.\d+)? ^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}(.\d+)? ^\d+:\d+:\d+(.\d+)?'"} ], "apm": { "enabled": true, "portEnabled": true }, "dogstatsd": { "port": 8126, "useHostPort": false }, "processAgent": { "enabled": true }, "prometheusScrape": { "enabled": true, "version": 1 }, "additionalConfigs": [ { "configurations": [ { "send_monotonic_counter": false, "send_distribution_counts_as_monotonic": false, "send_distribution_sums_as_monotonic": false, "send_histograms_buckets": true, "max_returned_metrics": 999999, "min_collection_interval": 15 } ] } ], "autodiscovery": { "kubernetes_annotations": { "exclude": { "app": "knight", "prometheus.io/scrape": "false" } }, "kubernetes_container_names": ["knight"] }, "checksd": { "kf_openmetrics.py": "|- from datadog_checks.base import AgentCheck, OpenMetricsBaseCheckV2\n import os, requests, json, time\n\n col_names = ['metric_name', 'metric_type', 'description']\n METRIC_TYPE_EXPANSIONS = {\n 'histogram' : {\n 'count' : {'type': 'count', 'desc_prefix' : 'Count of'},\n 'sum' : {'type': 'gauge', 'desc_prefix' : 'Sum of'},\n 'bucket' : {'type': 'gauge', 'desc_prefix' : 'Buckets of samples of'},\n 'min' : {'type': 'gauge', 'desc_prefix' : 'Minimum value of'},\n 'max' : {'type': 'gauge', 'desc_prefix' : 'Maximum value of'},\n },\n 'summary' : {\n 'count' : {'type': 'count', 'desc_prefix' : 'Count of'},\n 'sum' : {'type': 'gauge', 'desc_prefix' : 'Sum of'},\n 'quantile' : {'type': 'gauge', 'desc_prefix' : 'Various quantile values of'},\n }\n }\n\n HELP_TEXT = '# HELP'\n TYPE_TEXT = '# TYPE'\n DEFAULT_URL = 'http://%%host%%:%%port%%/metrics'\n class KfOpenMetricsCheck(AgentCheck):\n def init(self, name, init_config, instances):\n super(KfOpenMetricsCheck, self).init(name, init_config, instances)\n self.log.info("initializing kf_openmetrics check {}".format(instances))\n\n def get_default_config(self):\n return {}\n\n def scrape_endpoint(self, scrape_url):\n response = requests.get(scrape_url)\n if response.status_code != 200:\n raise Exception('failed to scrape endpoint: %s (error: %s)', scrape_url, response)\n return response.content.decode('utf-8')\n\n def prepare_mds(self, data):\n mds = {}\n content = data.splitlines()\n def _get_info(line, prefix_text):\n items = line[len(prefix_text):].split()\n return items[0], ' '.join(items[1:])\n def _add_info(metric_name, info, value):\n if metric_name not in mds:\n mds.update({metric_name:{}})\n mds[metric_name][info] = value\n def expand_info(metric_name):\n if mds[metric_name]['type'] not in METRIC_TYPE_EXPANSIONS:\n return\n extensions = METRIC_TYPE_EXPANSIONS[mds[metric_name]['type']]\n for ext_name, extension in extensions.items():\n prefix = ""\n suffix = ""\n try:\n prefix = extension['desc_prefix']\n except KeyError:\n pass\n try:\n suffix = extension['desc_suffix']\n except KeyError:\n pass\n mds.update({'%s%s'% (mname, ext_name): {'type' : extension['type'], 'desc' : ('%s %s %s' % (prefix, mdesc, suffix)).strip()}})\n for l in content: \n if l.startswith(HELP_TEXT):\n mname, mdesc = _get_info(l, HELP_TEXT)\n _add_info(mname, 'desc', mdesc)\n if l.startswith(TYPE_TEXT):\n mname, mtype = _get_info(l, TYPE_TEXT)\n _add_info(mname, 'type', mtype)\n _expand_info(mname)\n return mds\n\n def check(self, instance):\n scrape_url = ''\n try:\n scrape_url = instance.get('openmetrics_endpoint')\n if scrape_url != DEFAULT_URL:\n self.log.info("running kf_openmetrics check for instance {}".format(instance))\n data = self.scrape_endpoint(scrape_url)\n mds = self.prepare_mds(data)\n self.log.info("prepared mds len:{}, {}".format(len(mds), mds))\n self.event(\n {\n "timestamp": time.time(),\n "event_type": "OpenMetricsMetadata",\n "msg_title" : "OpenMetricsMetadata",\n "msg_text": json.dumps(mds)\n }\n )\n else:\n self.log.info("skipping kf_openmetrics check for instance {}".format(instance))\n except KeyError as ke:\n self.log.info("failed to scrape url={}, exc={}".format(scrape_url, ke))\n except requests.exceptions.InvalidURL as ie:\n self.log.info("invalid url={}, instance={}, exc={}".format(scrape_url, instance, ke)) }, "confd": { "go_expvar.yaml": "|- init_config:\n instances:\n - expvar_url: http://localhost:6000/debug/vars \n namespace: datadog.agent\n metrics:\n - path: forwarder/Transactions/RetryQueueSize\n - path: forwarder/Transactions/Success\n type: rate\n - path: forwarder/Transactions/Errors\n type: rate\n - path: forwarder/Transactions/ErrorsByType/DNSErrors\n type: rate\n - path: forwarder/Transactions/ErrorsByType/TLSErrors\n type: rate\n - path: forwarder/Transactions/ErrorsByType/ConnectionErrors\n type: rate\n - path: forwarder/Transactions/ErrorsByType/WroteRequestErrors\n type: rate\n - path: forwarder/Transactions/ErrorsByType/SentRequestErrors\n type: rate\n - path: forwarder/Transactions/HTTPErrors\n type: rate\n - path: dogstatsd-udp/Packets\n type: rate\n - path: dogstatsd-udp/PacketReadingErrors\n type: rate\n - path: dogstatsd-uds/Packets\n type: rate\n - path: dogstatsd-uds/PacketReadingErrors\n type: rate\n - path: dogstatsd-uds/OriginDetectionErrors\n type: rate\n - path: dogstatsd/ServiceCheckParseErrors\n type: rate\n - path: dogstatsd/ServiceCheckPackets\n type: rate\n - path: dogstatsd/EventParseErrors\n type: rate\n - path: dogstatsd/EventPackets\n type: rate\n - path: dogstatsd/MetricParseErrors\n type: rate\n - path: dogstatsd/MetricPackets\n type: rate\n - path: aggregator/Flush/ChecksMetricSampleFlushTime/LastFlush\n - path: aggregator/Flush/ServiceCheckFlushTime/LastFlush\n - path: aggregator/Flush/EventFlushTime/LastFlush\n - path: aggregator/Flush/MetricSketchFlushTime/LastFlush\n - path: aggregator/Flush/MainFlushTime/LastFlush\n - path: aggregator/FlushCount/ServiceChecks/LastFlush\n - path: aggregator/FlushCount/Series/LastFlush\n - path: aggregator/FlushCount/Events/LastFlush\n - path: aggregator/FlushCount/Sketches/LastFlush\n - path: aggregator/DogstatsdContexts\n - path: aggregator/SeriesFlushed\n type: rate\n - path: aggregator/ServiceCheckFlushed\n type: rate\n - path: aggregator/EventsFlushed\n type: rate\n - path: aggregator/NumberOfFlush\n type: rate\n - path: aggregator/DogstatsdMetricSample\n type: rate\n - path: aggregator/ChecksMetricSample\n type: rate\n - path: aggregator/ServiceCheck\n type: rate\n - path: aggregator/Event\n type: rate\n - path: aggregator/HostnameUpdate\n type: rate\n - path: scheduler/ChecksEntered\n - path: scheduler/Queues/./Size\n alias: scheduler.queues.size\n - path: scheduler/Queues/.*/Interval\n alias: scheduler.queues.interval\n - path: scheduler/QueuesCount\n - path: splitter/NotTooBig\n type: rate\n - path: splitter/TooBig\n type: rate\n - path: splitter/TotalLoops\n type: rate\n - path: splitter/PayloadDrops\n type: rate\n - path: logs-agent/IsRunning\n type: gauge\n - path: logs-agent/DestinationErrors\n type: rate\n - path: logs-agent/LogsDecoded\n type: rate\n - path: logs-agent/LogsProcessed\n type: rate\n - path: logs-agent/LogsSent\n type: rate\n - path: logs-agent/BytesSent\n type: rate\n - path: logs-agent/EncodedBytesSent\n type: rate\n - path: logs-agent/HttpDestinationStats/logs_0_reliable_0/idleMs\n type: rate\n alias: batch_strategy.idle_time\n tags:\n - sender:0\n - path: logs-agent/HttpDestinationStats/logs_0_reliable_0/inUseMs\n type: rate\n alias: batch_strategy.in_use_time\n tags:\n - sender:0\n - path: logs-agent/HttpDestinationStats/logs_1_reliable_0/idleMs\n type: rate\n alias: batch_strategy.idle_time\n tags:\n - sender:1\n - path: logs-agent/HttpDestinationStats/logs_1_reliable_0/inUseMs\n type: rate\n alias: batch_strategy.in_use_time\n tags:\n - sender:1\n - path: logs-agent/HttpDestinationStats/logs_2_reliable_0/idleMs\n type: rate\n alias: batch_strategy.idle_time\n tags:\n - sender:2\n - path: logs-agent/HttpDestinationStats/logs_2_reliable_0/inUseMs\n type: rate\n alias: batch_strategy.in_use_time\n tags:\n - sender:2\n - path: logs-agent/HttpDestinationStats/logs_3_reliable_0/idleMs\n type: rate\n alias: batch_strategy.idle_time\n tags:\n - sender:3\n - path: logs-agent/HttpDestinationStats/logs_3_reliable_0/inUseMs\n type: rate\n alias: batch_strategy.in_use_time\n tags:\n - sender:3\n ", "kf_openmetrics.yaml": "|- init_config:\n instances:\n - openmetrics_endpoint: http://%%host%%:%%port%%/metrics\n min_collection_interval: 300\n }, "clusterAgent": { "replicaCount": 1, "enabled": true, "datadog_cluster_yaml": { "use_v2_api": { "events": true, "series": true, "service_checks": true }, "process_config": { "process_dd_url": "http://kfuse-ingress-nginx-controller-internal.kfuse/ingester", "events_dd_url": "http://kfuse-ingress-nginx-controller-internal.kfuse/ingester", "container_collection": { "enabled": false }, "orchestrator_explorer": { "orchestrator_dd_url": "http://kfuse-ingress-nginx-controller-internal.kfuse" }, "manifest_collection": { "enabled": false }, "admissionController": { "enabled": false } } }, "agents": { "image": {"tagSuffix": "jmx", "useConfigMap": true}, "customAgentConfig": { "skip_ssl_validation": false, "enable_stream_payload_serialization": false, "use_v2_api": { "events": true, "series": true, "service_checks": true }, "process_config": { "process_dd_url": "http://kfuse-ingress-nginx-controller-internal.kfuse/ingester", "events_dd_url": "http://kfuse-ingress-nginx-controller-internal.kfuse/ingester", "container_collection": { "enabled": false }, "orchestrator_explorer": { "orchestrator_dd_url": "http://kfuse-ingress-nginx-controller-internal.kfuse" }, "manifest_collection": { "enabled": false }, "logs_config": { "logs_dd_url": "kfuse-ingress-nginx-controller-internal.kfuse:80", "logs_no_ssl": true, "use_http": true, "auto_multi_line_detection": true, "apm_config": { "enabled": true, "apm_non_local_traffic": true, "apm_dd_url": "kfuse-ingress-nginx-controller-internal.kfuse:80/ingester" } }, "metadata_providers": [{"name": "host", "interval": 300}] } } } } } }
}