Module: Datadog::AppSec::Metrics::Exporter
- Defined in:
- lib/datadog/appsec/metrics/exporter.rb
Overview
A class responsible for exporting WAF and RASP call metrics
Class Method Summary collapse
- .export_downstream_response_metrics(metrics, span) ⇒ Object
- .export_rasp_metrics(metrics, span) ⇒ Object
- .export_waf_metrics(metrics, span) ⇒ Object
Class Method Details
.export_downstream_response_metrics(metrics, span) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/datadog/appsec/metrics/exporter.rb', line 34 def export_downstream_response_metrics(metrics, span) metrics.each_pair do |reason, count| next if count.zero? span.set_tag("_dd.appsec.downstream_request.response_body_ignored.#{reason}", count) end end |
.export_rasp_metrics(metrics, span) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/datadog/appsec/metrics/exporter.rb', line 18 def export_rasp_metrics(metrics, span) return if metrics.evals.zero? span.set_tag("_dd.appsec.rasp.rule.eval", metrics.evals) span.set_tag("_dd.appsec.rasp.timeout", 1) unless metrics.timeouts.zero? span.set_tag("_dd.appsec.rasp.duration", convert_ns_to_us(metrics.duration_ns)) span.set_tag("_dd.appsec.rasp.duration_ext", convert_ns_to_us(metrics.duration_ext_ns)) # NOTE: In case of downstream requests being analyzed additionally # with `Context.run_waf` method, we would need to share it # between two exporting methods unless metrics.downstream_requests.zero? span.set_tag("_dd.appsec.downstream_request", metrics.downstream_requests) end end |
.export_waf_metrics(metrics, span) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/datadog/appsec/metrics/exporter.rb', line 10 def export_waf_metrics(metrics, span) return if metrics.evals.zero? span.set_tag("_dd.appsec.waf.timeouts", metrics.timeouts) span.set_tag("_dd.appsec.waf.duration", convert_ns_to_us(metrics.duration_ns)) span.set_tag("_dd.appsec.waf.duration_ext", convert_ns_to_us(metrics.duration_ext_ns)) end |