Skip to content

Commit 1e36f6f

Browse files
update with azure functions
1 parent e0ebca2 commit 1e36f6f

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

dogstatsd/src/origin.rs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,17 @@ const AWS_LAMBDA_TAG_KEY: &str = "function_arn";
1010
const AWS_STEP_FUNCTIONS_TAG_KEY: &str = "statemachinearn";
1111

1212
// Metric tag values
13-
const AZURE_APP_SERVICES_TAG_VALUE: &str = "appservice";
1413
const GOOGLE_CLOUD_RUN_TAG_VALUE: &str = "cloudrun";
14+
const AZURE_APP_SERVICES_TAG_VALUE: &str = "appservice";
1515
const AZURE_CONTAINER_APP_TAG_VALUE: &str = "containerapp";
16+
const AZURE_FUNCTIONS_TAG_VALUE: &str = "azurefunction";
1617

1718
// Metric prefixes
1819
const DATADOG_PREFIX: &str = "datadog";
19-
const AZURE_APP_SERVICES_PREFIX: &str = "azure.app_services";
2020
const GOOGLE_CLOUD_RUN_PREFIX: &str = "gcp.run";
21+
const AZURE_APP_SERVICES_PREFIX: &str = "azure.app_services";
2122
const AZURE_CONTAINER_APP_PREFIX: &str = "azure.app_containerapps";
23+
const AZURE_FUNCTIONS_PREFIX: &str = "azure.functions";
2224
const AWS_LAMBDA_PREFIX: &str = "aws.lambda";
2325
const AWS_STEP_FUNCTIONS_PREFIX: &str = "aws.states";
2426

@@ -46,6 +48,7 @@ pub enum OriginCategory {
4648
ContainerAppMetrics = 37,
4749
LambdaMetrics = 38,
4850
StepFunctionsMetrics = 41,
51+
AzureFunctionsMetrics = 71,
4952
}
5053

5154
impl From<OriginCategory> for u32 {
@@ -98,6 +101,14 @@ pub fn find_metric_origin(metric: &Metric, tags: SortedTags) -> Option<Origin> {
98101
..Default::default()
99102
});
100103
}
104+
if is_azure_functions(&tags, &prefix) {
105+
return Some(Origin {
106+
origin_product: OriginProduct::Serverless.into(),
107+
origin_category: OriginCategory::AzureFunctionsMetrics.into(),
108+
origin_service: OriginService::Other.into(),
109+
..Default::default()
110+
});
111+
}
101112
if is_aws_lambda(&tags, &prefix) {
102113
return Some(Origin {
103114
origin_product: OriginProduct::Serverless.into(),
@@ -135,21 +146,26 @@ fn is_datadog_metric(prefix: &str) -> bool {
135146
prefix == DATADOG_PREFIX
136147
}
137148

138-
fn is_azure_app_services(tags: &SortedTags, prefix: &str) -> bool {
139-
get_first_tag_value(tags, DD_ORIGIN_TAG_KEY) == Some(AZURE_APP_SERVICES_TAG_VALUE)
140-
&& prefix != AZURE_APP_SERVICES_PREFIX
141-
}
142-
143149
fn is_google_cloud_run(tags: &SortedTags, prefix: &str) -> bool {
144150
get_first_tag_value(tags, DD_ORIGIN_TAG_KEY) == Some(GOOGLE_CLOUD_RUN_TAG_VALUE)
145151
&& prefix != GOOGLE_CLOUD_RUN_PREFIX
146152
}
147153

154+
fn is_azure_app_services(tags: &SortedTags, prefix: &str) -> bool {
155+
get_first_tag_value(tags, DD_ORIGIN_TAG_KEY) == Some(AZURE_APP_SERVICES_TAG_VALUE)
156+
&& prefix != AZURE_APP_SERVICES_PREFIX
157+
}
158+
148159
fn is_azure_container_app(tags: &SortedTags, prefix: &str) -> bool {
149160
get_first_tag_value(tags, DD_ORIGIN_TAG_KEY) == Some(AZURE_CONTAINER_APP_TAG_VALUE)
150161
&& prefix != AZURE_CONTAINER_APP_PREFIX
151162
}
152163

164+
fn is_azure_functions(tags: &SortedTags, prefix: &str) -> bool {
165+
get_first_tag_value(tags, DD_ORIGIN_TAG_KEY) == Some(AZURE_FUNCTIONS_TAG_VALUE)
166+
&& prefix != AZURE_FUNCTIONS_PREFIX
167+
}
168+
153169
fn is_aws_lambda(tags: &SortedTags, prefix: &str) -> bool {
154170
get_first_tag_value(tags, AWS_LAMBDA_TAG_KEY).is_some() && prefix != AWS_LAMBDA_PREFIX
155171
}

0 commit comments

Comments
 (0)