From 4a533a533722e507e02f1fd3356709e3d04c92a3 Mon Sep 17 00:00:00 2001 From: Najah Date: Thu, 30 Jul 2026 11:32:53 +0530 Subject: [PATCH 1/5] Added Infrastructure dashboard for presto and prestissimo --- .../wxd-infrastructure/README.md | 80 +++++ .../dashboard/infrastructure.json | 301 ++++++++++++++++++ .../wxd-infrastructure/package.json | 26 ++ 3 files changed, 407 insertions(+) create mode 100644 packages/@instana-integration/wxd-infrastructure/README.md create mode 100644 packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json create mode 100644 packages/@instana-integration/wxd-infrastructure/package.json diff --git a/packages/@instana-integration/wxd-infrastructure/README.md b/packages/@instana-integration/wxd-infrastructure/README.md new file mode 100644 index 00000000..852fc6dc --- /dev/null +++ b/packages/@instana-integration/wxd-infrastructure/README.md @@ -0,0 +1,80 @@ +# @instana-integration/wxd-infra-metrics + +The Instana integration package is designed to showcase infrastructure observability capabilities within Instana by monitoring Kubernetes container resource metrics collected through the OpenTelemetry Prometheus Receiver. These metrics provide real-time visibility into CPU, memory, filesystem, and network utilization for Watsonx.data components running in Kubernetes/OpenShift clusters. + +## Dashboards + +Below are the dashboards currently supported by this integration package. + +| Dashboard Title | +|-----------------| +| Infrastructure Overview | +| Container CPU Usage | +| Container Memory Usage | +| Container Filesystem Usage | +| Container Network Traffic | + +## Metrics + +The following infrastructure metrics are included in this integration package. + +| Metric | Type | Description | +|--------|------|-------------| +| `container_cpu_usage_seconds_total` | Sum | Total CPU time consumed by the container. | +| `container_memory_usage_bytes` | Gauge | Current memory usage of the container. | +| `container_memory_working_set_bytes` | Gauge | Working set memory currently in use by the container. | +| `container_fs_usage_bytes` | Gauge | Current filesystem usage by the container. | +| `container_network_receive_bytes_total` | Sum | Total bytes received over the network by the container. | +| `container_network_transmit_bytes_total` | Sum | Total bytes transmitted over the network by the container. | + +### Semantic Conventions + +The metrics follow the OpenTelemetry Prometheus Receiver semantic conventions. + +### Resource Attributes + +The following resource attributes can be used to filter infrastructure metrics. + +| Attribute Key | Type | Description | +|---------------|------|-------------| +| `metric.tag.Instanceid` | string | Filters metrics for a specific Watsonx.data instance. | +| `metric.tag.PodUid` | string | Filters metrics for a specific Kubernetes pod. | +| `metric.tag.k8s.namespace.name` | string | Filters metrics by Kubernetes namespace. | +| `metric.tag.k8s.pod.name` | string | Filters metrics by Kubernetes pod name. | +| `metric.tag.k8s.node.name` | string | Filters metrics by Kubernetes node. | + +## OpenTelemetry Metric Names + +| Prometheus Metric | Instana Metric | +|-------------------|----------------| +| `container_cpu_usage_seconds_total` | `metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_cpu_usage_seconds_total` | +| `container_memory_usage_bytes` | `metrics.gauges.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_memory_usage_bytes` | +| `container_memory_working_set_bytes` | `metrics.gauges.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_memory_working_set_bytes` | +| `container_fs_usage_bytes` | `metrics.gauges.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_fs_usage_bytes` | +| `container_network_receive_bytes_total` | `metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_network_receive_bytes_total` | +| `container_network_transmit_bytes_total` | `metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_network_transmit_bytes_total` | + +## Installation and Usage + +With the **Instana CLI for integration package management**, you can download and import this package into your Instana tenant. + +### Download the package + +```shell +stanctl-integration download --package @instana-integration/wxd-infra-metrics +``` + +### Import the package + +```shell +stanctl-integration import --package @instana-integration/wxd-infra-metrics \ + --server $INSTANA_SERVER \ + --token $API_TOKEN \ + --set serviceinstanceid=$SERVICE_INSTANCE_ID +``` + +Where: + +- **INSTANA_SERVER**: Base URL of your Instana tenant (for example, `https://example.instana.io`). +- **API_TOKEN**: Instana API token with permissions to import integration packages. +- **SERVICE_INSTANCE_ID**: Unique identifier of the monitored service instance. \ No newline at end of file diff --git a/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json b/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json new file mode 100644 index 00000000..682b3b73 --- /dev/null +++ b/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json @@ -0,0 +1,301 @@ +{ + "rbacTags": [], + "accessRules": [ + { + "accessType": "READ_WRITE", + "relationType": "USER", + "relatedId": "688744cde129430001af50ed" + } + ], + "id": "jLfoOBdRQLiLjO2g63smRw", + "title": "infrastructure", + "widgets": [ + { + "width": 6, + "x": 0, + "y": 13, + "id": "S_uesYIzzXwuavC4", + "title": "Memory Usage", + "type": "chart", + "config": { + "shareMaxAxisDomain": false, + "y1": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [ + { + "lastValue": false, + "color": "", + "compareToTimeShifted": false, + "threshold": { + "critical": "", + "warning": "", + "thresholdEnabled": false, + "operator": ">=" + }, + "aggregation": "MEAN", + "label": "container_memory_working_set_bytes", + "source": "INFRASTRUCTURE_METRICS", + "type": "openTelemetry", + "metricPath": [ + "Others", + "Regex" + ], + "formatter": "number.detailed", + "unit": "number", + "regex": true, + "metric": "metrics.gauges.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_memory_working_set_bytes", + "timeShift": 0, + "tagFilterExpression": { + "logicalOperator": "AND", + "elements": [], + "type": "EXPRESSION" + }, + "allowedCrossSeriesAggregations": [], + "metricLabel": "metrics.gauges.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_memory_working_set_bytes", + "crossSeriesAggregation": "MEAN" + } + ], + "formatterSelected": false + }, + "y2": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [] + }, + "type": "TIME_SERIES" + }, + "height": 13 + }, + { + "width": 6, + "x": 0, + "y": 0, + "id": "l29lbbjd2ctAMQED", + "title": "CPU Usage", + "type": "chart", + "config": { + "shareMaxAxisDomain": false, + "y1": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [ + { + "lastValue": false, + "color": "", + "compareToTimeShifted": false, + "threshold": { + "critical": "", + "warning": "", + "thresholdEnabled": false, + "operator": ">=" + }, + "aggregation": "MEAN", + "label": "container_cpu_usage_seconds_total", + "source": "INFRASTRUCTURE_METRICS", + "type": "openTelemetry", + "metricPath": [ + "Others", + "Regex" + ], + "formatter": "number.detailed", + "unit": "number", + "regex": true, + "metric": "metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_cpu_usage_seconds_total", + "timeShift": 0, + "tagFilterExpression": { + "logicalOperator": "AND", + "elements": [], + "type": "EXPRESSION" + }, + "allowedCrossSeriesAggregations": [], + "metricLabel": "metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_cpu_usage_seconds_total", + "crossSeriesAggregation": "MEAN" + } + ], + "formatterSelected": false + }, + "y2": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [] + }, + "type": "TIME_SERIES" + }, + "height": 13 + }, + { + "width": 6, + "x": 6, + "y": 13, + "id": "dN164j-obByYipHg", + "title": "Network Recieved ", + "type": "chart", + "config": { + "shareMaxAxisDomain": false, + "y1": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [ + { + "lastValue": false, + "color": "", + "compareToTimeShifted": false, + "threshold": { + "critical": "", + "warning": "", + "thresholdEnabled": false, + "operator": ">=" + }, + "aggregation": "MEAN", + "label": "container_network_receive_bytes_total", + "source": "INFRASTRUCTURE_METRICS", + "type": "openTelemetry", + "metricPath": [ + "Others", + "Regex" + ], + "formatter": "number.detailed", + "unit": "number", + "regex": true, + "metric": "metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_network_receive_bytes_total", + "timeShift": 0, + "tagFilterExpression": { + "logicalOperator": "AND", + "elements": [], + "type": "EXPRESSION" + }, + "allowedCrossSeriesAggregations": [], + "metricLabel": "metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_network_receive_bytes_total", + "crossSeriesAggregation": "MEAN" + } + ], + "formatterSelected": false + }, + "y2": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [] + }, + "type": "TIME_SERIES" + }, + "height": 13 + }, + { + "width": 6, + "x": 0, + "y": 26, + "id": "Lu5Upx1gQMxtpFz8", + "title": "Network Transmitted", + "type": "chart", + "config": { + "shareMaxAxisDomain": false, + "y1": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [ + { + "lastValue": false, + "color": "", + "compareToTimeShifted": false, + "threshold": { + "critical": "", + "warning": "", + "thresholdEnabled": false, + "operator": ">=" + }, + "aggregation": "MEAN", + "label": "container_network_transmit_bytes_total", + "source": "INFRASTRUCTURE_METRICS", + "type": "openTelemetry", + "metricPath": [ + "Others", + "Regex" + ], + "formatter": "number.detailed", + "unit": "number", + "regex": true, + "metric": "metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_network_transmit_bytes_total", + "timeShift": 0, + "tagFilterExpression": { + "logicalOperator": "AND", + "elements": [], + "type": "EXPRESSION" + }, + "allowedCrossSeriesAggregations": [], + "metricLabel": "metrics.sums.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_network_transmit_bytes_total", + "crossSeriesAggregation": "MEAN" + } + ], + "formatterSelected": false + }, + "y2": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [] + }, + "type": "TIME_SERIES" + }, + "height": 13 + }, + { + "width": 6, + "x": 6, + "y": 0, + "id": "MO4CqdGLG1YkwNt9", + "title": "Disk I/O", + "type": "chart", + "config": { + "shareMaxAxisDomain": false, + "y1": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [ + { + "lastValue": false, + "color": "", + "compareToTimeShifted": false, + "threshold": { + "critical": "", + "warning": "", + "thresholdEnabled": false, + "operator": ">=" + }, + "aggregation": "MEAN", + "label": "container_fs_usage_bytes", + "source": "INFRASTRUCTURE_METRICS", + "type": "openTelemetry", + "metricPath": [ + "Others", + "Regex" + ], + "formatter": "number.detailed", + "unit": "number", + "regex": true, + "metric": "metrics.gauges.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_fs_usage_bytes", + "timeShift": 0, + "tagFilterExpression": { + "logicalOperator": "AND", + "elements": [], + "type": "EXPRESSION" + }, + "allowedCrossSeriesAggregations": [], + "metricLabel": "metrics.gauges.github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/container_fs_usage_bytes", + "crossSeriesAggregation": "MEAN" + } + ], + "formatterSelected": false + }, + "y2": { + "formatter": "number.detailed", + "renderer": "line", + "metrics": [] + }, + "type": "TIME_SERIES" + }, + "height": 13 + } + ], + "ownerId": "688744cde129430001af50ed", + "writable": true +} \ No newline at end of file diff --git a/packages/@instana-integration/wxd-infrastructure/package.json b/packages/@instana-integration/wxd-infrastructure/package.json new file mode 100644 index 00000000..31b60f13 --- /dev/null +++ b/packages/@instana-integration/wxd-infrastructure/package.json @@ -0,0 +1,26 @@ +{ + "name": "@instana-integration/wxd-infrastructure", + "version": "1.0.0", + "description": "The Instana integration package is designed to showcase infrastructure observability features in Instana by monitoring Kubernetes container resource metrics collected through the OpenTelemetry Prometheus Receiver.", + "author": "IBM", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "scripts": {}, + "keywords": [ + "ibm", + "instana", + "opentelemetry", + "custom dashboard", + "watsonx.data", + "infrastructure", + "kubernetes", + "container metrics", + "prometheus", + "cpu", + "memory", + "filesystem", + "network" + ] +} \ No newline at end of file From 23e08d2b14dd39bb147db6f56c192a03a60e611c Mon Sep 17 00:00:00 2001 From: Najah Date: Thu, 30 Jul 2026 11:43:17 +0530 Subject: [PATCH 2/5] Corrected the file name --- packages/@instana-integration/wxd-infrastructure/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/@instana-integration/wxd-infrastructure/README.md b/packages/@instana-integration/wxd-infrastructure/README.md index 852fc6dc..81003639 100644 --- a/packages/@instana-integration/wxd-infrastructure/README.md +++ b/packages/@instana-integration/wxd-infrastructure/README.md @@ -1,4 +1,4 @@ -# @instana-integration/wxd-infra-metrics +# @instana-integration/wxd-infrastructure The Instana integration package is designed to showcase infrastructure observability capabilities within Instana by monitoring Kubernetes container resource metrics collected through the OpenTelemetry Prometheus Receiver. These metrics provide real-time visibility into CPU, memory, filesystem, and network utilization for Watsonx.data components running in Kubernetes/OpenShift clusters. @@ -61,13 +61,13 @@ With the **Instana CLI for integration package management**, you can download an ### Download the package ```shell -stanctl-integration download --package @instana-integration/wxd-infra-metrics +stanctl-integration download --package @instana-integration/wxd-infrastructure ``` ### Import the package ```shell -stanctl-integration import --package @instana-integration/wxd-infra-metrics \ +stanctl-integration import --package @instana-integration/wxd-infrastructure \ --server $INSTANA_SERVER \ --token $API_TOKEN \ --set serviceinstanceid=$SERVICE_INSTANCE_ID From bdd447da34abe18d5844ca847b096cc2f0fac8ab Mon Sep 17 00:00:00 2001 From: Najah Date: Thu, 30 Jul 2026 19:29:43 +0530 Subject: [PATCH 3/5] relationtype changed to USER to GLOBAL --- .../wxd-infrastructure/dashboard/infrastructure.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json b/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json index 682b3b73..edecbb2f 100644 --- a/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json +++ b/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json @@ -3,7 +3,7 @@ "accessRules": [ { "accessType": "READ_WRITE", - "relationType": "USER", + "relationType": "GLOBAL", "relatedId": "688744cde129430001af50ed" } ], From 17fe1f3d4b02e686e2c0b2dbaf4dcf7b0ca1fe45 Mon Sep 17 00:00:00 2001 From: Najah Date: Thu, 30 Jul 2026 19:31:07 +0530 Subject: [PATCH 4/5] relationtype changed to USER to GLOBAL --- .../{dashboard => dashboards}/infrastructure.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/@instana-integration/wxd-infrastructure/{dashboard => dashboards}/infrastructure.json (100%) diff --git a/packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json b/packages/@instana-integration/wxd-infrastructure/dashboards/infrastructure.json similarity index 100% rename from packages/@instana-integration/wxd-infrastructure/dashboard/infrastructure.json rename to packages/@instana-integration/wxd-infrastructure/dashboards/infrastructure.json From a25756c01da3dd4e1b74e504bebb010b9cc6125d Mon Sep 17 00:00:00 2001 From: Najah Date: Thu, 30 Jul 2026 19:33:12 +0530 Subject: [PATCH 5/5] Lint scan issue fixed --- .../wxd-infrastructure/dashboards/infrastructure.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@instana-integration/wxd-infrastructure/dashboards/infrastructure.json b/packages/@instana-integration/wxd-infrastructure/dashboards/infrastructure.json index edecbb2f..20bb9e42 100644 --- a/packages/@instana-integration/wxd-infrastructure/dashboards/infrastructure.json +++ b/packages/@instana-integration/wxd-infrastructure/dashboards/infrastructure.json @@ -4,7 +4,7 @@ { "accessType": "READ_WRITE", "relationType": "GLOBAL", - "relatedId": "688744cde129430001af50ed" + "relatedId": "" } ], "id": "jLfoOBdRQLiLjO2g63smRw",