libdd_telemetry/data/
payloads.rs1use crate::data::metrics;
5
6use serde::{Deserialize, Serialize};
7
8#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone, Default)]
9pub struct Dependency {
10 pub name: String,
11 pub version: Option<String>,
12}
13
14#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone, Default)]
15pub struct Integration {
16 pub name: String,
17 pub enabled: bool,
18 pub version: Option<String>,
19 pub compatible: Option<bool>,
20 pub auto_enabled: Option<bool>,
21}
22
23#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone)]
24pub struct Configuration {
25 pub name: String,
26 pub value: String,
27 pub origin: ConfigurationOrigin,
28 pub config_id: Option<String>,
29 pub seq_id: Option<u64>,
30}
31
32#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone)]
33#[repr(C)]
34#[serde(rename_all = "snake_case")]
35pub enum ConfigurationOrigin {
36 EnvVar,
37 Code,
38 DdConfig,
39 RemoteConfig,
40 Default,
41 LocalStableConfig,
42 FleetStableConfig,
43 Calculated,
44}
45
46#[derive(Serialize, Debug)]
47pub struct AppStarted {
48 pub configuration: Vec<Configuration>,
49}
50
51#[derive(Serialize, Debug)]
52pub struct AppDependenciesLoaded {
53 pub dependencies: Vec<Dependency>,
54}
55
56#[derive(Serialize, Debug)]
57pub struct AppIntegrationsChange {
58 pub integrations: Vec<Integration>,
59}
60
61#[derive(Debug, Serialize)]
62pub struct AppClientConfigurationChange {
63 pub configuration: Vec<Configuration>,
64}
65
66#[derive(Serialize, Debug)]
67pub struct GenerateMetrics {
68 pub series: Vec<metrics::Serie>,
69}
70
71#[derive(Serialize, Debug)]
72pub struct Distributions {
73 pub series: Vec<metrics::Distribution>,
74}
75
76#[derive(Serialize, Deserialize, Debug, Clone)]
77pub struct Log {
78 pub message: String,
79 pub level: LogLevel,
80 pub count: u32,
81
82 #[serde(default)]
83 pub stack_trace: Option<String>,
84 #[serde(default)]
85 pub tags: String,
86 #[serde(default)]
87 pub is_sensitive: bool,
88 #[serde(default)]
89 pub is_crash: bool,
90}
91
92#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Hash, Clone)]
93#[serde(rename_all = "UPPERCASE")]
94#[repr(C)]
95pub enum LogLevel {
96 Error,
97 Warn,
98 Debug,
99}