Skip to content

docs(zabbix): add Trigger on-call pages section#3016

Open
Kyle-Neale wants to merge 2 commits into
masterfrom
kyle.neale/zabbix-oncall-triggers
Open

docs(zabbix): add Trigger on-call pages section#3016
Kyle-Neale wants to merge 2 commits into
masterfrom
kyle.neale/zabbix-oncall-triggers

Conversation

@Kyle-Neale
Copy link
Copy Markdown
Contributor

@Kyle-Neale Kyle-Neale commented May 26, 2026

Summary

Adds a "Trigger on-call pages" section to zabbix/README.md documenting how to forward Zabbix triggers to Datadog On-Call using the oncall_team query parameter on the V2 events webhook intake.

Implementation uses a JavaScript Webhook media type (Zabbix's native notification surface, parallel to the existing legacy Datadog media type already documented in the same README). The script builds the V2 envelope client-side, so no VRL transformer is required.

Notes for reviewers

  • Payload matches the canonical V2 webhook intake schema from the start (per DataDog/dd-source nagios/success_basecase.json): JSON:API envelope (data.type + data.attributes), integration_id: "zabbix", nested attributes.status (warn/error/ok), and a zabbix.source namespaced object — analogous to nagios.source in the canonical example.
  • Severity mapping: PROBLEM + High/Disaster → error; PROBLEM + Warning/Average/Information/Not-classified → warn (no silent drops); OK → ok (resolves the page via shared aggregation_key).
  • Companion to integrations-core#22991 (Nagios), same feature family from the EvMgt On-Call swap-and-go RFC.

Tracks BGL-1967.

Test plan

  • Render preview of the new section on GitHub
  • Manual end-to-end: create the media type with the script, fire a test trigger, verify a page lands under On-Call > Pages, fire a recovery, verify auto-resolve

🤖 Generated with Claude Code

Document a JavaScript Webhook media type that forwards Zabbix triggers
to Datadog On-Call. The script posts to the V2 webhook intake with the
canonical event envelope (matching DataDog/dd-source
nagios/success_basecase.json: data.type/data.attributes, integration_id,
aggregation_key, nested attributes.status, namespaced zabbix.source)
and uses the oncall_team query parameter for routing.

Includes a state-to-status mapping (PROBLEM + High/Disaster -> error,
Average/Warning/Information/Not-classified -> warn, OK -> ok) and
configuration for the media type, user, and action.

Tracks BGL-1967.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Kyle-Neale Kyle-Neale requested a review from a team as a code owner May 26, 2026 20:31
@datadog-prod-us1-6

This comment has been minimized.

@Kyle-Neale
Copy link
Copy Markdown
Contributor Author

Open question for reviewers: the V2 webhook intake VRL (zabbix.vrl) sanitizes oversized fields — aggregation_key is MD5'd above 100 chars, title is truncated to 500, message to 4000, tags to 100 items × 200 chars each.

Worth adding a short "Payload limits" note to this section, or is the sanitizer's fail-open behavior fine to leave undocumented?

@jeff-morgan-dd jeff-morgan-dd self-assigned this May 26, 2026
@jeff-morgan-dd jeff-morgan-dd added the editorial review Waiting on a more in-depth review from a docs team editor label May 26, 2026
@jeff-morgan-dd
Copy link
Copy Markdown

Created DOCS-14513 for editorial review.

@warthy
Copy link
Copy Markdown
Contributor

warthy commented May 27, 2026

Open question for reviewers: the V2 webhook intake VRL (zabbix.vrl) sanitizes oversized fields — aggregation_key is MD5'd above 100 chars, title is truncated to 500, message to 4000, tags to 100 items × 200 chars each.

Worth adding a short "Payload limits" note to this section, or is the sanitizer's fail-open behavior fine to leave undocumented?

@Kyle-Neale As those limits might vary I don't think it's worth documenting for now

CI's README validator only accepts ASCII; en-dash and em-dash
in the state-to-status mapping table were rejected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

editorial review Waiting on a more in-depth review from a docs team editor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants