# Telemetry Instance template

Telemetry instances are defined using a YAML manifest with the following structure:

```yaml
provider: Provider Name
name: My Telemetry
config:
  providerSpecificConfig1: "<value>"
  providerSpecificConfig2: 123
metrics:
- name: metric_name
  datasourceName: datsource_metric_name
  defaultValue: 1.23
  labels:
    - label1
    - label2
  staticLabels:
    staticLabel1: staticValue1
    staticLabel2: staticValue2
```

with the following properties for the global section

| Name       | Type   | Description                                                                                                                                                                                          | Mandatory |
| ---------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| `provider` | string | The name of the Telemetry Provider                                                                                                                                                                   | Yes       |
| `config`   | object | Provider-specific and generic configuration in a key-value format (see specific provider documentation for details on properties supported by each provider. Common properties are described below.) | Yes       |
| `name`     | string | Custom telemetry instance name                                                                                                                                                                       | No        |
| `metrics`  | object | This section is used to specify the metrics to extract. This section is specific for each Telemetry Provider (see specific provider documentation for details)                                       | No        |

and the metrics section

| Name             | Type                   | Description                                                                                                                                                                                    | Mandatory |
| ---------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| `name`           | string                 | <p>Name of the metric in Akamas.</p><p>This metric must exists in at least one of the referred by the System associated with the Telemetry Provider Instance</p>                               | Yes       |
| `datasourceName` | string                 | Name of the metric (or extraction query) in the data source. The value of this parameter is specific to the data source.                                                                       | Yes       |
| `defaultValue`   | double                 | Default value that, if specified, is used to create metrics in time-intervals where no other valid datapoint is available.                                                                     | No        |
| `labels`         | List of strings        | List of labels. For the specific usage of this parameter, see the documentation of the specific Telemetry Provider                                                                             | No        |
| `staticLabels`   | List of key-value pair | List of Key-Value pairs that are interpreted as a pair of labels name and value. This "static labels" are copied directly in each sample of the specific metric and sent to the Metric Service | No        |
| `aggregation`    | String                 | see [Dynatrace metric aggregations](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/metric-v2/metric-selector#aggregation)                                                | No        |
| `extras`         | Object                 | Only the parameter `mergeEntities` can be defined to either `true` or `false`                                                                                                                  | No        |

The `config` section supports the following properties available to all providers.

| Name                | Type    | Description                                                                                                                | Default                         |
| ------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| `schedulingTimeout` | Integer | The maximum time in seconds to wait for a telemetry activity to be started (e.g. the telemetry instance job to be running) | 120 on Kubernetes 300 on Docker |
| `executionTimeout`  | Integer | The maximum time in seconds to wait for a telemetry activity to be completed                                               | 900                             |

Here is an example of these properties specified in the config section of a telemetry instance.

```yaml
config:
  schedulingTimeout: 120 # The maximum time to wait for a telemetry activity to be started (e.g. the telemetry instance job to be running)
  executionTimeout: 900 # The maximum time to wait for a telemetry activity to be completed

```
