packages/o365_metrics/data_stream/entra_agent/agent/stream/cel.yml.hbs (158 lines of code) (raw):
config_version: 2
interval: {{interval}}
auth.oauth2:
client.id: {{client_id}}
client.secret: {{client_secret}}
provider: azure
scopes:
{{#each token_scopes_management as |token_scope|}}
- {{token_scope}}
{{/each}}
endpoint_params:
grant_type: client_credentials
{{#if token_url}}
token_url: {{token_url}}/{{azure_tenant_id}}/oauth2/v2.0/token
{{else if azure_tenant_id}}
azure.tenant_id: {{azure_tenant_id}}
{{/if}}
resource.url: {{url_management}}
{{#if resource_ssl}}
resource.ssl:
{{resource_ssl}}
{{/if}}
{{#if resource_timeout}}
resource.timeout: {{resource_timeout}}
{{/if}}
{{#if proxy_url}}
resource.proxy_url: {{proxy_url}}
{{/if}}
{{#if resource_retry_max_attempts}}
resource.retry.max_attempts: {{resource_retry_max_attempts}}
{{/if}}
{{#if resource_retry_wait_min}}
resource.retry.wait_min: {{resource_retry_wait_min}}
{{/if}}
{{#if resource_retry_wait_max}}
resource.retry.wait_max: {{resource_retry_wait_max}}
{{/if}}
{{#if resource_redirect_forward_headers}}
resource.redirect.forward_headers: {{resource_redirect_forward_headers}}
{{/if}}
{{#if resource_redirect_headers_ban_list}}
resource.redirect.headers_ban_list:
{{#each resource_redirect_headers_ban_list as |item|}}
- {{item}}
{{/each}}
{{/if}}
{{#if resource_redirect_max_redirects}}
resource.redirect.max_redirects: {{resource_redirect_max_redirects}}
{{/if}}
{{#if resource_rate_limit_limit}}
resource.rate_limit.limit: {{resource_rate_limit_limit}}
{{/if}}
{{#if resource_rate_limit_burst}}
resource.rate_limit.burst: {{resource_rate_limit_burst}}
{{/if}}
{{#if enable_request_tracer}}
resource.tracer.filename: "../../logs/cel/http-request-trace-*.ndjson"
{{/if}}
tags:
{{#each tags as |tag|}}
- {{tag}}
{{/each}}
{{#contains "forwarded" tags}}
publisher_pipeline.disable_host: true
{{/contains}}
{{#if processors}}
processors:
{{processors}}
{{/if}}
state:
want_more: false
premium_check_path: '/providers/Microsoft.ADHybridHealthService/services/GetServices/PremiumCheck?serviceType=AadSyncService&skipCount=0&takeCount=50'
service_path: '/providers/Microsoft.ADHybridHealthService/services'
api_query_param: '&api-version=2014-01-01'
base:
tenant_id: "{{azure_tenant_id}}"
period: "{{period}}"
redact:
fields:
- base.tenant_id
program: |
state.with(
request(
"GET",
state.url.trim_right("/") + state.premium_check_path + state.api_query_param
).do_request().as(services_resp,
services_resp.StatusCode == 200
?
bytes(services_resp.Body).decode_json().as(services_json,
{
"events": services_json.value.collate("serviceName").map(serviceName,
{
"o365":{
"metrics": {
"entra": {
"agent": {
"service_name": serviceName,
"service_members" :
request(
"GET",
state.url.trim_right("/") + state.service_path + "/" + serviceName + "/servicemembers?" + state.api_query_param
).do_request().as(servicemembers_resp,
servicemembers_resp.StatusCode != 200
?
[{
"error": [
string(servicemembers_resp.StatusCode),
string(servicemembers_resp.Body)
].join(" ")
}]
:
bytes(servicemembers_resp.Body).decode_json().as(body,
body.value.map(servicemembers, {
"last_reboot": servicemembers.lastReboot,
"last_disabled": servicemembers.lastDisabled,
"last_updated": servicemembers.lastUpdated,
"active_alerts": servicemembers.activeAlerts,
"resolved_alerts": servicemembers.resolvedAlerts,
"created_date": servicemembers.createdDate,
"disabled": servicemembers.disabled,
"service_id": servicemembers.serviceId,
"service_member_id": servicemembers.serviceMemberId,
"machine_id": servicemembers.machineId,
"machine_name": servicemembers.machineName,
"role": servicemembers.role,
"status": servicemembers.status,
"os_version": servicemembers.osVersion,
"os_name": servicemembers.osName
})
)
)
}
}
}
}
}
),
"want_more": false
}
)
:
{
"events": {
"error": {
"code": string(services_resp.StatusCode),
"id": string(services_resp.Status),
"message": "GET " + state.premium_check_path + ": " + (
size(services_resp.Body) != 0 ?
string(services_resp.Body)
:
string(services_resp.Status) + ' (' + string(services_resp.StatusCode) + ')'
),
},
},
"want_more": false
}
)
)