惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
WordPress大学
WordPress大学
小众软件
小众软件
IT之家
IT之家
腾讯CDC
月光博客
月光博客
量子位
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Datadog | The Monitor blog

Introducing our open source AI-native SAST Instrument and monitor Boomi integration flows with OpenTelemetry and Datadog Not all index scans are equal: How we cut query latency by over 99% Platform engineering metrics: What to measure and what to ignore Integrate Recorded Future threat intelligence with Datadog Cloud SIEM CI/CD security: threat modeling using a MITRE-style threat matrix CI/CD security: How to secure your GitHub ecosystem Ingress NGINX is EOL: A practical guide for migrating to Kubernetes Gateway API Operating agentic AI with Amazon Bedrock AgentCore and Datadog LLM Observability: Lessons from NTT DATA Introducing the Datadog Code Security MCP Capture and analyze custom heatmaps in Session Replay Understand session replays faster with AI summaries and smart chapters Monitor ClickHouse query performance with Datadog Database Monitoring How we designed empathetic alert sounds for on-call engineers Search and act across Datadog to resolve issues faster with Bits Assistant Measure the business impact of every product change with Datadog Experiments Analyzing round trip query latency Configuring JavaScript caches for better performance Introducing Bits AI Dev Agent for Code Security Datadog achieves ISO 42001 certification for responsible AI Monitor Nutanix clusters, hosts, and VMs with Datadog Monitor Juniper Mist in Datadog A new Host Map for modern infrastructure Annotate traces to improve LLM quality with Datadog LLM Observability What’s new in Cloud SIEM: AI-powered investigations, enhanced threat intelligence, and scalable security operations Explore Kubernetes with native OpenTelemetry data Monitor Oracle Fusion Cloud Applications with Datadog Announcing the Datadog Terraform provider v4.0.0 Scaling Kubernetes workloads on custom metrics How to design cloud environments for AI-powered threat analysis
How we use Datadog to get comprehensive, fine-grained vis...
2025-10-07 · via Datadog | The Monitor blog
Alexa Liaskovski

Alexa Liaskovski

Aaron Kaplan

Aaron Kaplan

Visibility into email performance is indispensable to any organization that counts on its ability to reach people through their inboxes, including Datadog. SREs, FinOps, and many other teams rely on email as a critical channel for communications from our platform, including monitor alerts, usage reports, and service account notifications. At Datadog, we depend on the visibility provided by our integrations for Mailgun, SendGrid, and Amazon SES to optimize our email performance and ensure deliverability.

In this post, we’ll take a close look at how we use these integrations internally at Datadog to monitor the delivery of every email going through our app. In particular, we’ll explore the custom metrics we use to augment the out-of-the-box (OOTB) visibility provided by these integrations in order to closely analyze email performance and maintain the health of one of our platform’s vital lines of communication.

Creating cross-transport visibility for comprehensive delivery tracking

Our integrations for SendGrid, Mailgun, and Amazon SES use webhooks from each transport to collect events data and verify successful email delivery. In the email delivery life cycle, these events begin with the addition of messages to transports’ sending queues. From there, they cover a range of eventualities up to and including successful delivery. The key events we track are:

  • Bounces, in which delivery attempts are rejected by receiving servers
  • Drops, in which transports forgo delivery attempts based on previous issues with receiving servers
  • Deferrals, or soft bounces, in which delivery temporarily fails and emails are added back into queues

All of this seems simple enough in principle. In practice, however, the data gets complicated, and we rely heavily on Datadog Log Management to create consistency and eliminate hurdles for analytics and troubleshooting. For example, these transports use inconsistent terminology in their logging of delivery events: SendGrid logs label bounce events Bounced with a type of Blocked, whereas Mailgun labels them Failed, with a reason of Suppress-Bounce. Our integrations for these transports include OOTB logs pipelines that do some massaging of log data upon intake for improved consistency. But we also use Log Management to standardize and enrich these logs, which helps us get a cohesive picture of email delivery patterns across all of our transports. Here’s how we standardize transport event names:

SendGrid event namesMailgun event namesAmazon SES event namesStandardized event names
@evt.name:processed@evt.name:accepted@evt.name:send@evt.name:accepted
@evt.name:delivered@evt.name:delivered@evt.name:delivery@evt.name:delivered
@evt.name:dropped@evt.name:failed and @reason:suppress-bounce@evt.name:deliverydelay@evt.name:dropped
@evt.name:bounced@evt.name:failed and @event-data.severity:permanent@evt.name:bounce@evt.name:bounced
@evt.name:deferred@evt.name:failed and @event-data.severity:temporary@evt.name:deliverydelay@evt.name:deferred

We’ve also customized the OOTB logs pipelines for our email transports. For example:

  • We add warning and error statuses to deferred and dropped events, respectively.
  • We measure the delivery lifetime of each message by calculating the difference between email queuing and delivery times.
  • We extract domains from recipient email addresses in order to tag and group metrics by domain.
An overview of our internal logs pipeline for SendGrid.
An overview of our internal logs pipeline for SendGrid
An overview of our internal logs pipeline for SendGrid.

We also use Grok Parsers to analyze the reasons for bounces logged by our transports: Inconsistencies in reason values cause inconsistencies in our tagging, so by using Grok Parsers to extract data such as SMTP codes and remap common error messages to enforce consistency, we’re able to get a clearer picture of delivery issues at scale.

A sample Grok Parser from our logs pipeline for SendGrid.
A sample Grok Parser from our logs pipeline for SendGrid
A sample Grok Parser from our logs pipeline for SendGrid.

To facilitate troubleshooting of these issues, we use Saved Views to enable our support team to quickly search logs for outgoing emails. This way, support engineers can jump straight into targeted troubleshooting in the event that a customer reports that an email they were expecting from Datadog is not in their inbox.

One of our Saved Views for troubleshooting email delivery issues.
Saved View for troubleshooting email delivery issues
One of our Saved Views for troubleshooting email delivery issues.

Refining our visibility into email delivery via custom metrics

Enforcing consistency in our email transport logs has helped us create a strong foundation for targeted troubleshooting and analysis. It’s also helped us effectively monitor patterns in email delivery with the right level of granularity. Each of our transports generates aggregate metrics that are collected by our integrations, but by using Log Management to generate our own custom metrics that cover the delivery of all emails from our platform, we’ve achieved improved granularity and enriched our cross-transport visibility. We use our standardized transport logs to generate the following metrics:

Metric NameTypeDescription
email_outgoing.event.acceptedCountEmail accepted by transport for delivery.
email_outgoing.event.allCountTotal count of all email events.
email_outgoing.event.bouncedCountEmail bounced by recipient server.
email_outgoing.event.clickedCountLink within email clicked.
email_outgoing.event.deferredCountEmail delivery failed, reattempt pending.
email_outgoing.event.deliveredCountEmail successfully delivered.
email_outgoing.event.droppedCountEmail dropped based on transport’s built-in suppression list.
email_outgoing.event.openedCountEmail opened by recipient.
email_outgoing.lifetime.bouncedDistributionLength of time between email queuing and bounce.
email_outgoing.lifetime.deliveredDistributionLength of time between email queuing and delivery.
email_outgoing.lifetime.deferredDistributionLength of time an email has been deferred.

Here, you can see how these metrics are defined in our UI:

Our custom metrics for tracking email delivery, seen within the Datadog Log Management UI

We track these metrics in a centralized dashboard for clear and detailed visibility into delivery patterns, such as our total overall bounce and drop rates, the rates and volumes of emails delivered and dropped by message type (e.g., monitor alerts, daily and weekly digests) and recipient domain, and latencies for deferred messages by message type and recipient domain.

internal-monitoring-email-delivery-dashboard

Tracking the number of emails bounced by SMTP code is particularly useful for helping us understand what’s driving issues with delivery.

Detail of our internal dashboard for monitoring email delivery showing bounce data

Ensuring a vital line of communication with our customers

At Datadog, our integrations for Mailgun, SendGrid, and Amazon SES have enabled us to create fine-grained, cross-vendor visibility into one of our platform’s vital lines of communication, helping us ensure the timely delivery of everything from monitor alerts to usage reports. Learn more about our email transport integrations—and, if you’re new to Datadog, consider signing up for a 14-day free trial.