Add Genesys Cloud MOS integration#3057
Open
edferron-dd wants to merge 9 commits into
Open
Conversation
New extras integration that reports Genesys Cloud conversation call quality (Mean Opinion Score) to Datadog. The Agent check queries ended conversations through the Analytics Conversation Detail Query API and emits average/min MOS, conversation counts, a below-threshold count, and a can_connect service check. Includes unit and integration tests (documented API payloads replayed through the Genesys SDK deserializer), dashboard, monitor, metadata, and config spec. Registers the integration in CODEOWNERS and the CI test matrix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- manifest.json: add required internal owner field (integrations-developer-platform) - assets/monitors/low_average_mos.json: use date (YYYY-MM-DD) for created_at/last_updated_at - CHANGELOG.md: use asterisk bullet per changelog guidelines - apply ruff format/lint (line-length 120) across check and tests Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sort imports with datadog_checks as first-party, matching the ruff config ruff runs from within the integration directory in CI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CI always runs 'ddev env test' (the e2e phase). With no dd_environment fixture it errors 'NO E2E FIXTURE AVAILABLE' (exit 2). This integration has no self-hostable dependency, so add a no-op session fixture; the e2e phase then collects zero tests and exits cleanly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The minimum-base-package CI job installs the declared floor. At 32.0.0 its pinned transitive pyyaml==6.0 fails to build on py3.12 (cython_sources error). 37.20.0 is the current new-integration baseline and builds cleanly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a unit test that loads InstanceConfig/SharedConfig via the base check_initializations path. The generated config_models were previously unexercised (0%), pulling project coverage under the 75% target; total coverage is now ~96%. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
validate-monitors requires the integration tag value to be a valid app_id. Use 'integration:genesys-mos' (matching manifest app_id) instead of the metric-namespace form 'genesys_mos'. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
estherk15
reviewed
Jul 10, 2026
- README: sentence-case 'Data collected' / 'Service checks' headings - README: drop em-dashes and spell out 'approximately' in the overview - README: point Support at the community maintainer, not Datadog support - Monitor: expand MOS acronym and explain why the alert matters Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
validate-monitors caps the description at <300 chars. Shorten while keeping the MOS explanation and alert rationale. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds a new Genesys Cloud MOS Agent integration to
integrations-extras.The check reports Genesys Cloud conversation call quality — the Mean Opinion Score (MOS) — to Datadog. It queries ended conversations on a trailing interval via the Analytics Conversation Detail Query API (
mediaStatsMinConversationMosdimension) using an OAuth client-credentials grant, and emits:genesys_mos.conversation.mos.avg/genesys_mos.conversation.mos.min(gauge)genesys_mos.conversation.count(gauge)genesys_mos.conversation.below_threshold.count(gauge)genesys_mos.can_connect(service check)Motivation
Give voice/contact-center teams visibility into perceived call quality directly in Datadog, with dashboards and a monitor for low average MOS.
Contents
datadog_checks/genesys_mos/) with config models andconf.yaml.examplemanifest.json,metadata.csv,assets/(dashboard, monitor, service_checks), configspec.yamlfile.jsonbackend), and troubleshootingPureCloudPlatformClientV2SDK deserializer, covering pagination, cross-page dedupe, the outgoing query contract, and threshold mathCODEOWNERSand CI test-matrix entriesReview checklist
ddev test genesys_mos)ddev validate all genesys_mospasses for all integration-specific validators🤖 Generated with Claude Code