# ThousandEyes for OpenTelemetry Data Model Metrics - Migration from v1 to v2

## HTTP Server

| **Metric v1**                               | **Metric v2**                                   |
| ------------------------------------------- | ----------------------------------------------- |
| `http.metrics.availability` (Percentage)    | `http.server.request.availability` (Percentage) |
| `http.metrics.throughput` (bytes/second)    | `http.server.throughput` (Bytes-per-second)     |
| `http.metrics.response.time` (Milliseconds) | `http.client.request.duration` (Seconds)        |

| **Resource attribute v1** | **Metric attributes v1**  | **Resource attribute v2**      | **Metric attributes v2**              |
| ------------------------- | ------------------------- | ------------------------------ | ------------------------------------- |
|                           | `url` (String)            | `url.scheme` (String)          |                                       |
|                           |                           | `http.request.method` (String) |                                       |
|                           |                           | `http.route` (String)          |                                       |
|                           | `server.ip` (String)      | `server.address` (String)      |                                       |
|                           |                           | `server.port` (Integer)        |                                       |
|                           | `response.code` (Integer) |                                | `http.response.status_code` (Integer) |
|                           | `error.type` (String)     |                                | `error.type` (String)                 |

## Agent-to-Server (Network)

| **Metric v1**                        | **Metric v2**                   |
| ------------------------------------ | ------------------------------- |
| `net.metrics.latency` (Milliseconds) | `network.latency` (Seconds)     |
| `net.metrics.loss` (Percentage)      | `network.loss` (Percentage)     |
| `net.metrics.jitter` (Milliseconds)  | `network.jitter` (Milliseconds) |

| **Resource attribute v1** | **Metric attributes v1** | **Resource attribute v2**    | **Metric attributes v2** |
| ------------------------- | ------------------------ | ---------------------------- | ------------------------ |
|                           | `server.name` (String)   | `server.address` (String)    |                          |
|                           | `Server.ip` (String)     |                              |                          |
|                           |                          | `server.port` (Integer)      |                          |
|                           |                          | `network.transport` (String) |                          |
|                           |                          |                              | `error.type` (String)    |

## One-way Agent-to-Agent (Network) & Two-way Agent-to-Agent (Network)

| **Metric v1**                        | **Metric v2**                   |
| ------------------------------------ | ------------------------------- |
| `net.metrics.latency` (Milliseconds) | `network.latency` (Seconds)     |
| `net.metrics.loss` (Percentage)      | `network.loss` (Percentage)     |
| `net.metrics.jitter` (Milliseconds)  | `network.jitter` (Milliseconds) |

| **Resource attribute v1** | **Metric attributes v1**                                                                                                                                                                                                                                                                                                       | **Resource attribute v2**                                                                                                                                                                                                                                                                                                                                                                                   | **Metric attributes v2** |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
|                           | <p><code>target.agent.id</code> (Integer)</p><p><code>target.agent.name</code> (String)</p><p><code>target.agent.location</code> (String)</p><p><code>target.agent.geoname.id</code> (String)</p><p><code>target.agent.geo.region.iso\_code</code> (String)</p><p><code>target.agent.geo.country.iso\_code</code> (String)</p> | <p><code>thousandeyes.target.agent.id</code> (String)</p><p><code>thousandeyes.target.agent.name</code> (String)</p><p><code>thousandeyes.target.agent.location</code> (String)</p><p><code>thousandeyes.target.agent.geoname.id</code> (String)</p><p><code>thousandeyes.target.agent.geo.region.iso\_code</code> (String)</p><p><code>thousandeyes.target.agent.geo.country.iso\_code</code> (String)</p> |                          |
|                           | `direction` (String)                                                                                                                                                                                                                                                                                                           | `network.io.direction` (String)                                                                                                                                                                                                                                                                                                                                                                             |                          |
|                           |                                                                                                                                                                                                                                                                                                                                | `network.transport` (String)                                                                                                                                                                                                                                                                                                                                                                                |                          |
|                           |                                                                                                                                                                                                                                                                                                                                | `server.port` (Integer)                                                                                                                                                                                                                                                                                                                                                                                     |                          |
|                           |                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                             | `error.type` (String)    |

## BGP

| **Metric v1**                           | **Metric v2**                    |
| --------------------------------------- | -------------------------------- |
| `bgp.metrics.path.changes` (Count)      | `bgp.path_changes.count` (Count) |
| `bgp.metrics.reachability` (Percentage) | `bgp.reachability` (Percentage)  |
| `bgp.metrics.updates` (Count)           | `bgp.updates.count` (Count)      |

| **Resource attribute v1** | **Metric attributes v1**                                                                                                       | **Resource attribute v2**                                                                                                                                            | **Metric attributes v2** |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
|                           | <p><code>monitor.id</code> (Integer)</p><p><code>monitor.name</code> (String)</p><p><code>monitor.location</code> (String)</p> | <p><code>thousandeyes.monitor.id</code> (String)</p><p><code>thousandeyes.monitor.name</code> (String)</p><p><code>thousandeyes.monitor.location</code> (String)</p> |                          |
|                           | `prefix` (String)                                                                                                              | `network.prefix` (String)                                                                                                                                            |                          |
|                           | `network.as.path` (String)                                                                                                     | `network.as.path` (String)                                                                                                                                           |                          |

## Web Transaction

| **Metric v1**                                            | **Metric v2**                             |
| -------------------------------------------------------- | ----------------------------------------- |
| `webtransaction.metrics.transaction.time` (Milliseconds) | `web.transaction.duration` (Seconds)      |
| `webtransaction.metrics.errors` (Count)                  | `web.transaction.errors.count` (Count)    |
| `webtransaction.metrics.completion` (Percentage)         | `web.transaction.completion` (Percentage) |

| **Resource attribute v1** | **Metric attributes v1** | **Resource attribute v2** | **Metric attributes v2** |
| ------------------------- | ------------------------ | ------------------------- | ------------------------ |
|                           | `error.type` (String)    |                           | `error.type` (String)    |
|                           | `error.details` (String) |                           |                          |

## DNS Server

| **Metric v1**                                      | **Metric v2**                          |
| -------------------------------------------------- | -------------------------------------- |
| `dnsserver.metrics.availability` (Percentage)      | `dns.lookup.availability` (Percentage) |
| `dnsserver.metrics.resolution.time` (Milliseconds) | `dns.lookup.duration` (Seconds)        |

| **Resource attribute v1** | **Metric attributes v1** | **Resource attribute v2**    | **Metric attributes v2** |
| ------------------------- | ------------------------ | ---------------------------- | ------------------------ |
|                           | `server.id` (String)     |                              |                          |
|                           | `server.name` (String)   | `dns.question.name` (String) |                          |
|                           | `error.details` (String) |                              | `error.type` (String)    |

## DNSSEC

| **Metric v1**                          | **Metric v2**                      |
| -------------------------------------- | ---------------------------------- |
| `dnssec.metrics.validity` (Percentage) | `dns.lookup.validity` (Percentage) |

| **Resource attribute v1** | **Metric attributes v1** | **Resource attribute v2**    | **Metric attributes v2** |
| ------------------------- | ------------------------ | ---------------------------- | ------------------------ |
|                           |                          | `dns.question.name` (String) |                          |
|                           | `error.details` (String) |                              | `error.type` (String)    |

## DNS Trace

| **Metric v1**                                | **Metric v2**                          |
| -------------------------------------------- | -------------------------------------- |
| `dnstrace.metrics.availability` (Percentage) | `dns.lookup.availability` (Percentage) |
| `dnstrace.metrics.query.time` (Milliseconds) | `dns.lookup.duration` (Seconds)        |

| **Resource attribute v1** | **Metric attributes v1**       | **Resource attribute v2**    | **Metric attributes v2** |
| ------------------------- | ------------------------------ | ---------------------------- | ------------------------ |
|                           | `finalserver` (String)         | `dns.question.name` (String) |                          |
|                           | `error.details` (String)       |                              | `error.type` (String)    |
|                           | `query.failed_count` (Integer) |                              |                          |
|                           | `query.count` (Integer)        |                              |                          |

## Page Load

| **Metric v1**                              | **Metric v2**                           |
| ------------------------------------------ | --------------------------------------- |
| `pageload.metrics.time` (Milliseconds)     | `web.page_load.duration` (Seconds)      |
| `pageload.metrics.completion` (Percentage) | `web.page_load.completion` (Percentage) |

| **Resource attribute v1** | **Metric attributes v1**        | **Resource attribute v2** | **Metric attributes v2** |
| ------------------------- | ------------------------------- | ------------------------- | ------------------------ |
|                           |                                 | `server.address` (String) |                          |
|                           |                                 | `server.port` (Integer)   |                          |
|                           | `error.details` (String)        |                           | `error.type` (String)    |
|                           | `error.num` (Integer)           |                           |                          |
|                           | `response.time.first` (Integer) |                           |                          |
|                           | `response.time.dom` (Integer)   |                           |                          |
|                           | `object.size` (Integer)         |                           |                          |
|                           | `object.num` (Integer)          |                           |                          |

## FTP Server

| **Metric v1**                              | **Metric v2**                                  |
| ------------------------------------------ | ---------------------------------------------- |
| `ftp.metrics.availability` (Percentage)    | `ftp.server.request.availability` (Percentage) |
| `ftp.metrics.throughput` (Bytes/second)    | `ftp.server.throughput` (Bytes-per-second)     |
| `ftp.metrics.response.time` (Milliseconds) | `ftp.client.request.duration` (Seconds)        |

| **Resource attribute v1** | **Metric attributes v1** | **Resource attribute v2**     | **Metric attributes v2**             |
| ------------------------- | ------------------------ | ----------------------------- | ------------------------------------ |
|                           |                          | `url.scheme` (String)         |                                      |
|                           |                          | `ftp.request.method` (String) |                                      |
|                           |                          | `server.port` (Integer)       |                                      |
|                           | `server.ip` (String)     | `server.address` (String)     |                                      |
|                           |                          |                               | `ftp.response.status_code` (Integer) |
|                           | `error.type` (String)    |                               | `error.type` (String)                |

## SIP Server

| **Metric v1**                              | **Metric v2**                                  |
| ------------------------------------------ | ---------------------------------------------- |
| `sip.metrics.availability` (Percentage)    | `sip.server.request.availability` (Percentage) |
| `sip.metrics.total.time` (Milliseconds)    | `sip.client.request.total_time` (Seconds)      |
| `ftp.metrics.response.time` (Milliseconds) | `sip.client.request.duration` (Seconds)        |

| **Resource attribute v1** | **Metric attributes v1** | **Resource attribute v2** | **Metric attributes v2**             |
| ------------------------- | ------------------------ | ------------------------- | ------------------------------------ |
|                           | `server.ip` (String)     | `server.address` (String) |                                      |
|                           |                          | `server.port` (Integer)   |                                      |
|                           |                          |                           | `sip.response.status_code` (Integer) |
|                           | `error.type` (String)    |                           | `error.type` (String)                |
|                           | `error.details` (String) |                           |                                      |

## RTP Stream

| **Metric v1**                        | **Metric v2**                              |
| ------------------------------------ | ------------------------------------------ |
| `rtp.metrics.mos` (Score)            | `rtp.client.request.mos` (Score)           |
| `rtp.metrics.loss` (Percentage)      | `rtp.client.request.loss` (Percentage)     |
| `rtp.metrics.discards` (Percentage)  | `rtp.client.request.discards` (Percentage) |
| `rtp.metrics.latency` (Milliseconds) | `rtp.client.request.duration` (Seconds)    |
|                                      | `rtp.client.request.pdv` (Milliseconds)    |

| **Resource attribute v1** | **Metric attributes v1** | **Resource attribute v2**                                                                                                                                                                                                                                                                                                                                                                             | **Metric attributes v2** |
| ------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
|                           |                          | <p><code>thousandeyes.target.agent.id</code>(String)</p><p><code>thousandeyes.target.agent.name</code>(String)</p><p><code>thousandeyes.target.agent.location</code>(String)</p><p><code>thousandeyes.target.agent.geoname.id</code>(String)</p><p><code>thousandeyes.target.agent.geo.region.iso\_code</code>(String)</p><p><code>thousandeyes.target.agent.geo.country.iso\_code</code>(String)</p> |                          |
|                           | `server.ip`(String)      |                                                                                                                                                                                                                                                                                                                                                                                                       |                          |
|                           |                          |                                                                                                                                                                                                                                                                                                                                                                                                       | `error.type`(String)     |

## API

| **Metric v1**                              | **Metric v2**                      |
| ------------------------------------------ | ---------------------------------- |
| `api.metrics.time` (Milliseconds)          | `api.duration` (Seconds)           |
| `api.metrics.completion` (Percentage)      | `api.completion` (Percentage)      |
| `api.step.metrics.time` (Milliseconds)     | `api.step.duration` (Seconds)      |
| `api.step.metrics.completion` (Percentage) | `api.step.completion` (Percentage) |

| **Resource attribute v1** | **Metric attributes v1**       | **Resource attribute v2**                                                                                                   | **Metric attributes v2**       |
| ------------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
|                           | `step` (Integer)               | `thousandeyes.test.step` (Integer)                                                                                          |                                |
|                           | `url.full` (String)            | <p><code>server.address</code> (String)</p><p><code>server.port</code> (Integer)</p><p><code>url.scheme</code> (String)</p> |                                |
|                           | `http.request.method` (String) |                                                                                                                             | `http.request.method` (String) |
|                           | `error.type` (String)          |                                                                                                                             | `error.type` (String)          |
|                           | `error.details` (String)       |                                                                                                                             |                                |

## Common Attributes

| **Resource attribute v1**            | **Metric attributes v1**       | **Resource attribute v2**                                                                                                      | **Metric attributes v2** |
| ------------------------------------ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------ |
| `thousandeyes.stream.id` (String)    | `integration.id` (String)      | `thousandeyes.stream.id` (String)                                                                                              |                          |
|                                      | `test.domain` (String)         | `thousandeyes.test.domain` (String)                                                                                            |                          |
|                                      | `test.id` (Integer)            | `thousandeyes.test.id` (String)                                                                                                |                          |
|                                      | `test.type` (String)           | `thousandeyes.test.type` (String)                                                                                              |                          |
|                                      | `test.name` (String)           | `thousandeyes.test.name` (String)                                                                                              |                          |
|                                      | `agent.id` (Integer)           | `thousandeyes.source.agent.id` (String)                                                                                        |                          |
|                                      | `agent.name` (String)          | `thousandeyes.source.agent.name` (String)                                                                                      |                          |
|                                      | `agent.location` (String)      | `thousandeyes.source.agent.location` (String)                                                                                  |                          |
|                                      | `agent.geoname.id` (String)    | `thousandeyes.source.agent.geoname.id` (String)                                                                                |                          |
|                                      | `account.id` (String)          | `thousandeyes.account.id` (String)                                                                                             |                          |
| `thousandeyes.data.version` (String) |                                | `thousandeyes.data.version` (String)                                                                                           |                          |
|                                      | `datapoint.id` (String)        |                                                                                                                                |                          |
|                                      | `datapoint.created` (Integer)  |                                                                                                                                |                          |
|                                      | `datapoint.received` (Integer) |                                                                                                                                |                          |
|                                      | `round.id` (Integer)           |                                                                                                                                |                          |
|                                      | `permalink` (String)           | <p><code>thousandeyes.permalink</code> (String)</p><p>Note: It does not contain <code>roundId</code> as a query parameter.</p> |                          |

## Test Type Attribute Value

| **Test type**             | **v1**             | **v2**            |
| ------------------------- | ------------------ | ----------------- |
| Agent-to-Server (Network) | `agent-to-server`  | `agent-to-server` |
| BGP                       | `bgp`              | `bgp`             |
| Web Transaction           | `web-transactions` | `web-transaction` |
| Agent-to-Agent            | `agent-to-agent`   | `agent-to-agent`  |
| DNSSEC                    | `dns-dnssec`       | `dns-sec`         |
| DNS Server                | `dns-server`       | `dns-server`      |
| DNS Trace                 | `dns-trace`        | `dns-trace`       |
| FTP                       | `ftp-server`       | `ftp-server`      |
| HTTP                      | `http-server`      | `http-server`     |
| Page Load                 | `page-load`        | `page-load`       |
| RTP                       | `voice`            | `rtp`             |
| SIP                       | `sip-server`       | `sip`             |
| API                       | `api`              | `api`             |

## Tags as Attributes

For the V2 migration, there are two changes related to attribute values derived from `tags`. The type of the attribute value depends on how many `tags` share the same key:

* If a key has **only one tag value**, the attribute will be a single `string`.
* If a key has **multiple tag values**, the attribute will be an `array` of `strings`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thousandeyes.com/product-documentation/integration-guides/opentelemetry/data-model/data-model-v2/metrics/data-model-migration-v1-to-v2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
