Sha256: 3b8d1e9e37f6173bf19733242f4916c5fe59e72c90218911be94ab5b674f78a3

Contents?: true

Size: 756 Bytes

Versions: 4

Compression:

Stored size: 756 Bytes

Contents

# frozen_string_literal: true

module Datadog
  module AppSec
    module Metrics
      # A class responsible for reporting WAF and RASP telemetry metrics.
      module Telemetry
        module_function

        def report_rasp(type, result)
          return if result.is_a?(SecurityEngine::Result::Error)

          tags = { rule_type: type, waf_version: Datadog::AppSec::WAF::VERSION::BASE_STRING }
          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
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
datadog-2.12.1 lib/datadog/appsec/metrics/telemetry.rb
datadog-2.12.0 lib/datadog/appsec/metrics/telemetry.rb
datadog-2.11.0 lib/datadog/appsec/metrics/telemetry.rb
datadog-2.10.0 lib/datadog/appsec/metrics/telemetry.rb