libdd_telemetry/data/
common.rs1use serde::{Deserialize, Serialize};
5
6use crate::data::*;
7
8#[derive(Serialize, Deserialize, Debug)]
9pub enum ApiVersion {
10 #[serde(rename = "v2")]
11 V2,
12}
13
14impl ApiVersion {
15 pub fn to_str(&self) -> &'static str {
16 match self {
17 ApiVersion::V2 => "v2",
18 }
19 }
20}
21
22#[derive(Serialize, Debug)]
23pub struct Telemetry<'a> {
24 pub api_version: ApiVersion,
25 pub tracer_time: u64,
26 pub runtime_id: &'a str,
27 pub seq_id: u64,
28 pub application: &'a Application,
29 pub host: &'a Host,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
31 pub origin: Option<&'a str>,
32 #[serde(flatten)]
33 pub payload: &'a Payload,
34}
35
36#[derive(Serialize, Deserialize, Default, Debug)]
37pub struct Application {
38 pub service_name: String,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub service_version: Option<String>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub env: Option<String>,
43 pub language_name: String,
44 pub language_version: String,
45 pub tracer_version: String,
46 #[serde(skip_serializing_if = "Option::is_none")]
47 pub runtime_name: Option<String>,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub runtime_version: Option<String>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub runtime_patches: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub process_tags: Option<String>,
54}
55
56#[derive(Serialize, Deserialize, Default, Debug)]
57pub struct Host {
58 pub hostname: String,
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub container_id: Option<String>,
61 #[serde(skip_serializing_if = "Option::is_none")]
62 pub os: Option<String>,
63 #[serde(skip_serializing_if = "Option::is_none")]
64 pub os_version: Option<String>,
65 #[serde(skip_serializing_if = "Option::is_none")]
66 pub kernel_name: Option<String>,
67 #[serde(skip_serializing_if = "Option::is_none")]
68 pub kernel_release: Option<String>,
69 #[serde(skip_serializing_if = "Option::is_none")]
70 pub kernel_version: Option<String>,
71}