Skip to content

Latest commit

 

History

History
434 lines (351 loc) · 7.08 KB

auto-telemetry-pixie-data-model.mdx

File metadata and controls

434 lines (351 loc) · 7.08 KB
title tags metaDescription redirects
Query Pixie data
Pixie Auto-telemetry
Service monitoring
Kubernetes
eBPF
/docs/integrations/kubernetes-integration/understand-use-data/auto-telemetry-pixie-data-model/

Auto-telemetry with Pixie pulls data from the Pixie Cloud API and sends it to the New Relic OpenTelemetry endpoint. You can build your own charts and query your Auto-telemetry with Pixie data using the query builder and the NerdGraph API.

Find out more about getting started with Auto-telemetry with Pixie here.

Metrics and specifications

HTTP metrics

Query for duration of inbound HTTP request. For example:

FROM Metric SELECT average(http.server.duration)
FACET service.name
WHERE instrumentation.provider='pixie'
  <th>
  Metric  
  </th>
</tr>
  <td>
 `http.server.duration`
  </td>
</tr>

<tr>
  <td>
 Spec   
  </td>

  <td>
 [OpenTelemetry HTTP metric spec](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md)   
  </td>
</tr>

<tr>
  <td>
 Description   
  </td>

  <td>
 Measures the duration of the inbound HTTP request.   
  </td>
</tr>
<tr>
  <td>
  OTEL data type  
  </td>

  <td>
  `MetricDataTypeDoubleSummary` with `min(quantile=0)` and `max(quantile=1)`
  </td>
</tr>

<tr>
  <td>
  Unit  
  </td>

  <td>
  milliseconds
  </td>
</tr>

<tr>
  <td>
 Required attributes   
  </td>

  <td>
  `service.name`
  </td>
</tr>

<tr>
  <td>
  Static attributes  
  </td>

  <td>
  `instrumentation.provider` = pixie
  </td>
</tr>

<tr>
  <td>
  HTTP attributes  
  </td>

  <td>
  `http.status_code`
  </td>
</tr>

<tr>
  <td>
  Entity attributes  
  </td>

  <td>
  `service.instance.id` <br/>
  `k8s.cluster.name` <br/>
  `k8s.namespace.name` <br/>
  `k8s.pod.name` <br/>
  `k8s.container.name` <br/>
  </td>
</tr>
Event type
Metric name

JVM metrics

Query to measure the time spent in a given JVM garbage collectors in milliseconds. For example:

FROM Metric SELECT average(runtime.jvm.gc.collection) FACET service.name, gc
WHERE instrumentation.provider='pixie'
  <th>
  Metric  
  </th>
</tr>
  <td>
  `runtime.jvm.gc.collection`
  </td>
</tr>

<tr>
  <td>
  Spec  
  </td>

  <td>
  [opentelemetry.jvm.gc.collection](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/runtime-metrics/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/GarbageCollector.java)  
  </td>
</tr>

<tr>
  <td>
  Description  
  </td>

  <td>
  Time spent in a given JVM garbage collector in milliseconds.  
  </td>
</tr>

<tr>
  <td>
  Unit  
  </td>

  <td>
  milliseconds  
  </td>
</tr>

<tr>
  <td>
  Required attributes  
  </td>

  <td>
  `service.name`  
  </td>
</tr>

<tr>
  <td>
  Static attributes  
  </td>

  <td>
  `instrumentation.provider = pixie`  
  </td>
</tr>

<tr>
  <td>
  JVM attributes  
  </td>

  <td>
  gc = `young|full`  
  </td>
</tr>

<tr>
  <td>
  Entity attributes  
  </td>

  <td>
  `service.instance.id` <br/>
  `k8s.cluster.name` <br/>
  `k8s.namespace.name` <br/>
  `k8s.pod.name` <br/>
  `k8s.container.name` <br/>

  </td>
</tr>
Event type
Metric name

Query to find out the number of bytes in a given JVM memory area. For example:

FROM Metric SELECT average(runtime.jvm.memory.area)
FACET service.name
WHERE type='used' AND instrumentation.provider='pixie'
  <th>
  Metric  
  </th>
</tr>
  <td>
  `runtime.jvm.memory.area`
  </td>
</tr>

<tr>
  <td>
  Spec  
  </td>

  <td>
  [opentelemetry-java-instrumentation](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/runtime-metrics/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/MemoryPools.java)  
  </td>
</tr>

<tr>
  <td>
  Description  
  </td>

  <td>
  Bytes of a given JVM memory area.  
  </td>
</tr>

<tr>
  <td>
  Unit  
  </td>

  <td>
  bytes  
  </td>
</tr>

<tr>
  <td>
  Required attributes  
  </td>

  <td>
  `service.name`  
  </td>
</tr>

<tr>
  <td>
  Static attributes  
  </td>

  <td>
  `instrumentation.provider = pixie`  
  </td>
</tr>

<tr>
  <td>
  JVM attributes  
  </td>

  <td>
  type = `used|total|max` <br/>
  area = `heap` <br/>
  </td>
</tr>

<tr>
  <td>
  Entity attributes  
  </td>

  <td>
  `service.instance.id` <br/>
  `k8s.cluster.name` <br/>
  `k8s.namespace.name` <br/>
  `k8s.pod.name` <br/>
  `k8s.container.name` <br/>

  </td>
</tr>
Event type
Metric name

HTTP server span

Example query:

FROM Span SELECT uniques(name)
WHERE span.kind='server'
AND instrumentation.provider='pixie'
AND service.name='orders'
  <th>
  Semantic conventions for HTTP spans 
  </th>
</tr>
  <td>
  Span
  </td>
</tr>

<tr>
  <td>
  Required attributes  
  </td>

  <td>
  name = `normalized HTTP path` <br/>
  `service.name` <br/>
  `trace.id` <br/>
  `span.id` <br/>  
  </td>
</tr>  

<tr>
  <td>
  Static attributes  
  </td>

  <td>
  `span.kind = server` <br/>
  `instrumentation.provider = pixie` <br/> 
  </td>
</tr>

<tr>
  <td>
  HTTP attributes  
  </td>

  <td>
  `http.host` <br/>
  `http.method` <br/>
  `http.path` <br/>
  `http.status_code` <br/>
  `http.url` <br/>
  `http.user_agent` <br/>
  </td>
</tr>
Spec
Event type