Module: Datadog::AppSec::Metrics::Telemetry

Defined in:
lib/datadog/appsec/metrics/telemetry.rb

Overview

A class responsible for reporting WAF and RASP telemetry metrics.

Class Method Summary collapse

Class Method Details

.report_rasp(type, result, phase: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/datadog/appsec/metrics/telemetry.rb', line 10

def report_rasp(type, result, phase: nil)
  return if result.error?

  tags = {rule_type: type, waf_version: WAF::VERSION::BASE_STRING}
  tags[:rule_variant] = phase if phase

  context = AppSec.active_context
  tags[:event_rules_version] = context.waf_runner_ruleset_version if context

  namespace = Ext::TELEMETRY_METRICS_NAMESPACE

  AppSec.telemetry.inc(namespace, 'rasp.rule.eval', 1, tags: tags)
  AppSec.telemetry.inc(namespace, 'rasp.rule.match', 1, tags: tags) if result.match?
  AppSec.telemetry.inc(namespace, 'rasp.timeout', 1, tags: tags) if result.timeout?
end