Cisco Intersight Metrics

Cisco Intersight metrics in this repo are exposed to AppDynamics through a Prometheus-compatible endpoint and mapped into AppDynamics custom metrics for the Intersight dashboard.

The examples in this page are reference templates. Replace the environment-specific values before deployment.

Prerequisites

Ensure that:

  • Cisco Intersight API access is configured upstream
  • the Intersight collector path is deployed from intersight-otel-appd-values-template.yaml
  • network is reachable to the exported Prometheus service
  • the Intersight collector pod is deployed first so that Infrastructure Visibility has a live scrape target

Configure the Upstream Intersight Collector

The AppDynamics scrape layer does not query Cisco Intersight directly. It scrapes a Prometheus endpoint exposed by the upstream intersight-otel poller.

The upstream flow for this integration is:

  • intersight-otel polls Cisco Intersight APIs
  • it sends the OpenTelemetry protocol (OTLP) metrics to the downstream collector
  • the downstream collector exports Prometheus metrics
  • Infrastructure Visibility scrapes that Prometheus endpoint

For the chain to work, you must deploy the following manifests:

  1. Downstream OTLP collector (appd-otlp-collector-template.yaml)- Deploys an OpenTelemetry Collector with two Services:
    • appd-otlp-collector-service:4317- OTLP gRPC ingest used by intersight-otel

    • intersight-appd-prometheus-service:9464- Prometheus exposition that scraped by Infrastructure Visibility.

    This collector is shared with the Cisco Nexus path. See Cisco Nexus Metrics. Deploy this manifest first so OTLP target exists before the upstream collector starts.

  2. Upstream Intersight collector (intersight-otel-appd-values-template.yaml)- This deploys intersight-otel and points otel_collector_endpoint at the appd-otlp-collector-service:4317 of downstream collector.

Apply both manifests with kubectl apply -f <file> (these are raw manifests, not Helm charts). Replace these environment-specific values before applying:

  • Intersight API key ID and private key (created as Secret intersight-api-credentials in the upstream chart's namespace)
  • organization name
  • otel_collector_endpoint — must resolve to the downstream Service: http://appd-otlp-collector-service.<collector-namespace>.svc.cluster.local:4317
  • collector namespace and any non-default Service names

Collector config (intersight-otel.toml):

JSON
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: intersight-otel-appd-config
  namespace: appdynamics
data:
  intersight-otel.toml: |
    otel_collector_endpoint = "http://<downstream-otlp-service>.<collector-namespace>.svc.cluster.local:4317"

    [[pollers]]
    name = "intersight.alarms.count"
    otel_attributes = { severity = "critical", "intersight.organization" = "<organization>" }
    api_query = "api/v1/cond/Alarms?$filter=Acknowledge eq 'None' and Severity eq 'Critical'&$count=true"
    aggregator = "result_count"
    interval = 60

    [[tspollers]]
    name = "ucs_host_temperature"
    datasource = "PhysicalEntities"
    dimensions = ["host.name"]
    field_names = ["intersight.ucs.host.temperature"]
    otel_dimension_to_attribute_map = { "host.name" = "intersight.host.name" }
    otel_attributes = { "intersight.organization" = "<organization>" }
    interval = 60
```

Before AppDynamics scraping, validate that the collector is exposing Prometheus on http://<intersight-prometheus-service>:9464/metrics.

Enable Prometheus Scraping for Cisco Intersight

The following are example values from this repo:

  • service: intersight-appd-prometheus-service
  • namespace: appdynamics
  • port: 9464
  • path: /metrics

Replace these values with the service name and namespace used by your collector deployment.

Configure Machine Agent Ingestion

Infrastructure Visibility Prometheus monitoring reads the exporter include list from prometheus-config-template.yaml and loads the ready-to-use example from exporter-yamls/intersight-exporter.yaml.

To activate this path:

  • include the Intersight exporter YAML in the prometheus-exporters ConfigMap
  • ensure that the main include list references that exporter file
  • apply the ConfigMap update and re-run the Infrastructure Visibility Helm upgrade

Before enabling the scrape, update the exporter YAML service discovery fields to the service name and namespace used by your collector deployment.

Exporter YAML Contract

  • ready-to-use exporter file: exporter-yamls/intersight-exporter.yaml
  • source metrics include:
    • intersight_advisories_security_count
    • intersight_advisories_security_affected_objects
    • intersight_advisories_nonsecurity_affected_objects
    • intersight_alarms_count
    • intersight_ucs_host_temperature
    • intersight_ucs_host_power
    • intersight_ucs_network_transmit_rate
    • intersight_ucs_network_receive_rate
    • intersight_ucs_network_utilization_average
    • intersight_ucs_fan_speed
  • custom metric family: Custom Metrics|Intersight|...

Expected AppDynamics Custom Metric Paths

  • Custom Metrics|Intersight|Security Advisory Count
  • Custom Metrics|Intersight|Security Advisories Affected
  • Custom Metrics|Intersight|Non-Security Advisories Affected
  • Custom Metrics|Intersight|Alarm Count
  • Custom Metrics|Intersight|{intersight_organization}|{severity}|Alarm Count
  • Custom Metrics|Intersight|{intersight_organization}|{intersight_host_name}|Host Temperature (C)
  • Custom Metrics|Intersight|{intersight_organization}|{intersight_name}|Host Power
  • Custom Metrics|Intersight|{intersight_organization}|{intersight_host_name}|Network Transmit Rate
  • Custom Metrics|Intersight|{intersight_organization}|{intersight_host_name}|Network Receive Rate
  • Custom Metrics|Intersight|{intersight_organization}|{intersight_host_name}|Network Utilization (%)
  • Custom Metrics|Intersight|{intersight_host_name}|Fan Speed

Create Custom Dashboard

The custom dashboard script generates ready-to-import AppDynamics dashboard JSON files from a set of templates. You supply your environment's node names and, optionally, the custom metric path prefixes. The script substitutes them into the templates and writes the JSON files. See Create Custom Dashboards for AI Pods.

Troubleshooting

  • verify that the upstream Intersight exporter service is reachable
  • verify that the organization and host-name labels match the expected path tokens