Module: Datadog::AppSec::Metrics::TelemetryExporter
- Defined in:
- lib/datadog/appsec/metrics/telemetry_exporter.rb
Overview
A class responsible for exporting WAF request metrics via Telemetry.
Class Method Summary collapse
- .export_api_security_metrics(context) ⇒ Object
- .export_waf_request_metrics(metrics, context) ⇒ Object
Class Method Details
.export_api_security_metrics(context) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/datadog/appsec/metrics/telemetry_exporter.rb', line 27 def export_api_security_metrics(context) web_framework = context.state[:web_framework] return unless web_framework if context.span&.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE).nil? AppSec.telemetry.inc( AppSec::Ext::TELEMETRY_METRICS_NAMESPACE, 'api_security.missing_route', 1, tags: {framework: web_framework} ) end metric_name = context.state[:schema_extracted] ? 'schema' : 'no_schema' AppSec.telemetry.inc( AppSec::Ext::TELEMETRY_METRICS_NAMESPACE, "api_security.request.#{metric_name}", 1, tags: {framework: web_framework} ) end |
.export_waf_request_metrics(metrics, context) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/datadog/appsec/metrics/telemetry_exporter.rb', line 10 def export_waf_request_metrics(metrics, context) AppSec.telemetry.inc( Ext::TELEMETRY_METRICS_NAMESPACE, 'waf.requests', 1, tags: { waf_version: WAF::VERSION::BASE_STRING, event_rules_version: context.waf_runner_ruleset_version, rule_triggered: metrics.matches.positive?.to_s, waf_error: metrics.errors.positive?.to_s, waf_timeout: metrics.timeouts.positive?.to_s, request_blocked: context.interrupted?.to_s, block_failure: 'false', rate_limited: (!context.trace.sampled?).to_s, input_truncated: metrics.inputs_truncated.positive?.to_s, } ) end |