Skip to content

Add Dynatrace log pump#939

Open
l3ender wants to merge 36 commits intoTykTechnologies:masterfrom
l3ender:dynatrace-logs
Open

Add Dynatrace log pump#939
l3ender wants to merge 36 commits intoTykTechnologies:masterfrom
l3ender:dynatrace-logs

Conversation

@l3ender
Copy link
Copy Markdown

@l3ender l3ender commented Jan 24, 2026

Description

This pull request introduces a new Dynatrace log pump to the Tyk Pump project. The Dynatrace pump enables integration with Dynatrace's Log Ingestion API, allowing analytics data to be sent to Dynatrace for monitoring and analysis.

Key Changes

  • Added a new DynatracePump implementation.
  • Updated configuration options to support Dynatrace-specific settings, including API token, endpoint URL, SSL options, and batch processing.
  • Enhanced demo data generation to support finer granularity with hourly data generation.
  • Updated documentation to include configuration examples for the Dynatrace pump along with other general formatting and doc fixes.

NOTE! Documentation will need to be updated to include detail of this new pump.

Related Issue

Resolves #940.

Motivation and Context

This feature allows users to integrate Tyk Pump with Dynatrace, providing enhanced observability and monitoring capabilities for API analytics data.

How This Has Been Tested

  • Unit tests have been added for the new Dynatrace pump functionality.
  • Manual testing was conducted to verify integration with Dynatrace's Log Ingestion API.
  • Updated demo data generation logic was tested with various configurations.
Example `pump.conf` file used for testing
{
  "log_level": "debug",
  "purge_delay": 10,
  "pumps": {
    "dynatrace": {
      "type": "dynatrace",
      "meta": {
        "api_token": "dt0c01.xxx.xxx",
        "endpoint_url": "https://xxx.live.dynatrace.com",
        "ssl_insecure_skip_verify": true,
        "obfuscate_api_keys": true,
        "obfuscate_api_keys_length": 8,
        "enable_batch": true,
        "max_retries": 2,
        "fields": [
          "http.method",
          "http.host",
          "http.url",
          "http.status_code",
          "http.client_ip",
          "api_key",
          "geo.city_name",
          "geo.country_name",
          "geo.name",
          "geo.region_name",
          "content_length",
          "user_agent",
          "api_version",
          "api_name",
          "api_id",
          "org_id",
          "oauth_id",
          "raw_request",
          "request_time",
          "raw_response",
          "network",
          "latency",
          "tags",
          "alias",
          "track_path"
        ],
        "properties": {
          "dt.http.application_id": "tyk-pump",
          "dt.host_group.id": "Web_QAT_Tyk"
        },
        "ignore_tag_prefix_list": [
          "key-",
          "org-",
          "api-"
        ]
      }
    }
  },
  "dont_purge_uptime_data": true
}

Screenshots (if appropriate)

Example from Dynatrace logs using demo data:

image

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist

  • Make sure you are requesting to pull a topic/feature/bugfix branch (right side). If pulling from your own
    fork, don't request your master!
  • Make sure you are making a pull request against the master branch (left side). Also, you should start
    your branch off our latest master.
  • My change requires a change to the documentation.
    • If you've changed APIs, describe what needs to be updated in the documentation.
  • I have updated the documentation accordingly.
  • Modules and vendor dependencies have been updated; run go mod tidy && go mod vendor
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • Check your code additions will not fail linting checks:
    • go fmt ./...
    • go vet

@l3ender l3ender marked this pull request as ready for review January 26, 2026 21:57
@nerdydread
Copy link
Copy Markdown
Contributor

nerdydread commented Jan 27, 2026

Added TT-16505 for internal tracking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for sending events to Dynatrace logs

2 participants