---
title: Kepler
description: View energy usage estimates of Kuberenetes workloads from Kepler
breadcrumbs: Docs > Integrations > Kepler
---

# Kepler
Supported OS Integration version2.0.1
## Overview{% #overview %}

This check brings Kuberenetes workloads energy usage estimates from [Kepler](https://sustainable-computing.io/) into Datadog.

## Setup{% #setup %}

### Installation{% #installation %}

For Agent v7.21+ / v6.21+, follow the instructions below to install the Kepler check on your host. See [Use Community Integrations](https://docs.datadoghq.com/agent/guide/use-community-integrations/?tab=agentv721v621) to install with the Docker Agent or earlier versions of the Agent.

1. Run the following command to install the integration:

   ```shell
   datadog-agent integration install -t datadog-kepler==<INTEGRATION_VERSION>
   ```

1. Configure your integration similar to core [integrations](https://github.com/DataDog/integrations-extras/blob/master/kepler/datadog_checks/kepler/data/conf.yaml.example).

### Configuration{% #configuration %}

1. Edit the `kepler.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to start collecting your kepler performance data. See the [sample kepler.d/conf.yaml](https://github.com/DataDog/integrations-extras/blob/master/kepler/datadog_checks/kepler/data/conf.yaml.example) for all available configuration options.

1. [Restart the Agent](https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-and-restart-the-agent).

### Validation{% #validation %}

[Run the Agent's status subcommand](https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information) and look for `kepler` under the Checks section.

## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

|  |
|  |
| **kepler.container.usage.bpf\_cpu\_time.count**(count)        | Aggregated value in bpf_cpu_time_ms value from bpf                                                                                                              |
| **kepler.container.usage.bpf\_net\_rx\_irq.count**(count)     | Aggregated value in bpf_net_rx_irq value from bpf                                                                                                               |
| **kepler.container.usage.bpf\_net\_tx\_irq.count**(count)     | Aggregated value in bpf_net_tx_irq value from bpf                                                                                                               |
| **kepler.container.usage.bpf\_page\_cache\_hit.count**(count) | Aggregated value in bpf_page_cache_hit value from bpf                                                                                                           |
| **kepler.container.usage.cache\_miss.count**(count)           | Aggregated value in cache_miss value from bpf                                                                                                                   |
| **kepler.container.usage.core\_joules.count**(count)          | Aggregated value in core value from trained_power_model                                                                                                         |
| **kepler.container.usage.cpu\_cycles.count**(count)           | Aggregated value in cpu_cycles value from bpf                                                                                                                   |
| **kepler.container.usage.cpu\_instructions.count**(count)     | Aggregated value in cpu_instructions value from bpf                                                                                                             |
| **kepler.container.usage.dram\_joules.count**(count)          | Aggregated value in dram value from trained_power_model                                                                                                         |
| **kepler.container.usage.gpu\_joules.count**(count)           | Aggregated value in gpu value from nvidia                                                                                                                       |
| **kepler.container.usage.joules.count**(count)                | Aggregated value in joules value from                                                                                                                           |
| **kepler.container.usage.package\_joules.count**(count)       | Aggregated value in package value from trained_power_model                                                                                                      |
| **kepler.container.usage.platform\_joules.count**(count)      | Aggregated value in platform value from trained_power_model                                                                                                     |
| **kepler.container.usage.task\_clock.count**(count)           | Aggregated value in task_clock_ms value from bpf                                                                                                                |
| **kepler.container.usage.uncore\_joules.count**(count)        | Aggregated value in uncore value from trained_power_model                                                                                                       |
| **kepler.exporter.build\_info**(gauge)                        | A metric with a constant '1' value labeled by version, revision, branch, goversion from which kepler_exporter was built, and the goos and goarch for the build. |
| **kepler.node.usage.dram\_joules.count**(count)               | Aggregated value in dram value from trained_power_model                                                                                                         |
| **kepler.node\_info.count**(count)                            | Aggregated value in value from os                                                                                                                               |
| **kepler.node.usage.platform\_joules.count**(count)           | Aggregated value in platform value from trained_power_model                                                                                                     |
| **kepler.node.usage.uncore\_joules.count**(count)             | Aggregated value in uncore value from trained_power_model                                                                                                       |
| **kepler.container.usage.bpf\_block\_irq.count**(count)       | Aggregated value in bpf_block_irq value from bpf                                                                                                                |
| **kepler.container.usage.other\_joules.count**(count)         | Aggregated value in other value from trained_power_model                                                                                                        |
| **kepler.node.usage.core\_joules.count**(count)               | Aggregated value in core value from trained_power_model                                                                                                         |
| **kepler.node.usage.package\_joules.count**(count)            | Aggregated value in package value from trained_power_model                                                                                                      |
| **kepler.promhttp.metric.handler.errors.count**(count)        | Total number of internal errors encountered by the promhttp metric handler.                                                                                     |

### Service Checks{% #service-checks %}

**kepler.openmetrics.health**

Returns `CRITICAL` if the Agent is unable to connect to the Kepler OpenMetrics endpoint, otherwise returns `OK`.

*Statuses: ok, critical*

### Events{% #events %}

Kepler does not include any events.

## Troubleshooting{% #troubleshooting %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/agent/guide/use-community-integrations/?tab=agentv721v621).
