INTEGRITY Dokumentace

Metriky a analytika

Email Service poskytuje analytické nástroje, pomocí kterých můžete sledovat výkon odesílání e-mailů a míru doručení napříč všemi doménami.

Metriky zobrazené v Cloudflare dashboard ↗ grafy se získávají z dat Cloudflare GraphQL Analytics API. K metrikám máte přístup přes programově přes GraphQL nebo HTTP klienta.

Metriky

Email Service aktuálně poskytuje následující metriky:

Dataset GraphQL Dataset Name Popis
Odesílání (agregované) emailSendingAdaptiveGroups Agregované počty odeslaných e-mailů seskupené podle dimenzí, jako je stav, datum, odesílající doména a výsledky autentizace.
Odesílání (události) emailSendingAdaptive Jednotlivé události odesílání e-mailů se všemi podrobnostmi, včetně odesílatele, příjemce, předmětu, ID zprávy a informací o chybách.
Směrování (agregováno) emailRoutingAdaptiveGroups Agregované počty směrovaných e-mailů seskupené podle dimenzí, jako je stav, datum, doména příjemce a výsledky autentizace.
Směrování (události) emailRoutingAdaptive Jednotlivé události směrování e-mailů se všemi podrobnostmi, včetně odesílatele, příjemce, předmětu, ID zprávy a rozhodnutí o zpracování.

Metriky lze dotazovat (a jsou uchovávány) po dobu posledních 31 dnů.

Zobrazit metriky v dashboardu

Analytika Email Service pro jednotlivé domény je dostupná v Cloudflare dashboardu. Aktuální i historické metriky zobrazíte takto:

  1. Přihlaste se do Cloudflare dashboard ↗ a vyberte svůj účet.
  2. Přejděte na Compute > Email Service a vyberte Email Sending nebo Email Routing.
  3. Vyberte existující doménu, nebo zobrazte metriky za celý účet.
  4. Vyberte Analytics kartě.

Volitelně můžete vybrat časové okno pro dotaz. Výchozí hodnota je posledních 24 hodin.

Dotazování přes GraphQL API

Analytiku pro domény vaší služby Email Service můžete programově dotazovat prostřednictvím GraphQL Analytics API. Toto API dotazuje stejné datové sady jako dashboard Cloudflare a podporuje GraphQL introspekce.

Chcete-li začít používat GraphQL Analytics API, postupujte podle dokumentace a nastavte Autentizace pro GraphQL Analytics API. Váš API token musí obsahovat Analytics Read oprávnění.

Toto jsou na úrovni zóny datasety. Pokud je chcete dotazovat, uveďte ID zóny (nikoli ID účtu) jako zoneTag filtr. GraphQL datasety pro Email Service zahrnují:

Dimenze Email Sending

emailSendingAdaptiveGroups dataset podporuje následující dimenze pro seskupování a filtrování:

Dimenze Typ Popis
date Datum Seskupení podle dnů
datetime Čas Přesné časové razítko události
datetimeMinute Čas Seskupení po minutách
datetimeFiveMinutes Čas seskupení v intervalech po 5 minutách
datetimeFifteenMinutes Čas seskupení v intervalech po 15 minutách
datetimeHour Čas Seskupení po hodinách
status string Stav doručení (například delivered, deliveryFailed)
eventType string Původ e-mailu (incoming, forward, reply, newEmail)
sendingDomain string Doména použitá k odeslání e-mailu
envelopeTo string Obálková adresa příjemce
errorCause string Příčina chyby u neúspěšných odeslání
arc string Výsledek ověření ARC
dkim string Výsledek ověření DKIM
dmarc string Výsledek ověření DMARC
spf string Výsledek autentizace SPF
isSpam uint8 Zda byl e-mail označen jako spam
isNDR uint8 Zda je e-mail zprávou o nedoručení
isLastEvent uint8 Zda jde o poslední událost tohoto e-mailu

emailSendingAdaptive dataset obsahuje vše výše uvedené a navíc pole pro jednotlivé události: from, to, subject, messageId, sessionId, errorDetail.

Dimenze Email Routing

emailRoutingAdaptiveGroups dataset podporuje následující dimenze pro seskupování a filtrování:

Dimenze Typ Popis
date Datum Seskupení podle dnů
datetime Čas Přesné časové razítko události
datetimeMinute Čas Seskupení po minutách
datetimeFiveMinutes Čas seskupení v intervalech po 5 minutách
datetimeFifteenMinutes Čas seskupení v intervalech po 15 minutách
datetimeHour Čas Seskupení po hodinách
status string Výsledný stav e-mailu
eventType string Původ e-mailu (incoming, forward, reply, newEmail)
action string Akce použitá směrovacím pravidlem
ruleMatched string UUID směrovacího pravidla, kterému e-mail odpovídá
arc string Výsledek ověření ARC
dkim string Výsledek ověření DKIM
dmarc string Výsledek ověření DMARC
spf string Výsledek autentizace SPF
isSpam uint8 Zda byl e-mail označen jako spam
isNDR uint8 Zda je e-mail zprávou o nedoručení
isLastEvent uint8 Zda jde o poslední událost tohoto e-mailu

emailRoutingAdaptive dataset obsahuje vše výše uvedené a navíc pole pro jednotlivé události: from, to, subject, messageId, sessionId, errorDetail, ruleMatched.

Příklady

Následují běžné GraphQL dotazy, které můžete použít k získání informací o analytice Email Service. Tyto dotazy používají proměnnou $zoneTag, které by mělo být nastaveno na vaše Cloudflare Zone ID. Najdete ho na řídicím panelu Cloudflare v části domény Přehled stránce.

{
	"zoneTag": "<YOUR_ZONE_ID>",
	"start": "2024-07-15",
	"end": "2024-07-30"
}

Operace Email Sending

Dotaz na počet e-mailů za dané období, seskupený podle date a status (například delivered, deliveryFailed):

query EmailSendingByStatus($zoneTag: string!, $start: Date!, $end: Date!) {
	viewer {
		zones(filter: { zoneTag: $zoneTag }) {
			emailSendingAdaptiveGroups(
				filter: { date_geq: $start, date_leq: $end }
				limit: 10000
				orderBy: [date_DESC]
			) {
				count
				dimensions {
					date
					status
				}
			}
		}
	}
}

Analýza selhání doručení

Chcete-li prozkoumat příčiny selhání doručení za konkrétní časové období, seskupené podle errorCause a sendingDomain:

query EmailDeliveryFailures($zoneTag: string!, $start: Date!, $end: Date!) {
	viewer {
		zones(filter: { zoneTag: $zoneTag }) {
			emailSendingAdaptiveGroups(
				filter: { date_geq: $start, date_leq: $end, status: "deliveryFailed" }
				limit: 10000
				orderBy: [date_DESC]
			) {
				count
				dimensions {
					date
					errorCause
					sendingDomain
				}
			}
		}
	}
}

Hodinový objem

Dotaz na objem odeslaných e-mailů seskupený podle hodiny, užitečný pro identifikaci vzorců provozu:

query EmailSendingHourlyVolume($zoneTag: string!, $start: Time!, $end: Time!) {
	viewer {
		zones(filter: { zoneTag: $zoneTag }) {
			emailSendingAdaptiveGroups(
				filter: { datetimeHour_geq: $start, datetimeHour_leq: $end }
				limit: 10000
				orderBy: [datetimeHour_ASC]
			) {
				count
				dimensions {
					datetimeHour
					status
				}
			}
		}
	}
}

Jednotlivé e-mailové události

Dotaz na jednotlivé e-mailové události pro řešení konkrétních problémů s doručením. Používá se přitom emailSendingAdaptive dataset a filtruje podle datetime (typ Time):

query RecentEmailEvents($zoneTag: string!, $start: Time!, $end: Time!) {
	viewer {
		zones(filter: { zoneTag: $zoneTag }) {
			emailSendingAdaptive(
				filter: { datetime_geq: $start, datetime_leq: $end }
				limit: 50
				orderBy: [datetime_DESC]
			) {
				datetime
				from
				to
				subject
				status
				eventType
				sendingDomain
				messageId
				errorCause
				errorDetail
				dkim
				dmarc
				spf
				isSpam
			}
		}
	}
}

Operace Email Routing

Dotaz na počet směrovaných e-mailů za dané období, seskupený podle date a status:

query EmailRoutingByStatus($zoneTag: string!, $start: Date!, $end: Date!) {
	viewer {
		zones(filter: { zoneTag: $zoneTag }) {
			emailRoutingAdaptiveGroups(
				filter: { date_geq: $start, date_leq: $end }
				limit: 10000
				orderBy: [date_DESC]
			) {
				count
				dimensions {
					date
					status
				}
			}
		}
	}
}

Aktivita směrovacích pravidel

Chcete-li zjistit, která směrovací pravidla se shodují s e-maily, seskupená podle ruleMatched a action:

query EmailRoutingRuleActivity($zoneTag: string!, $start: Date!, $end: Date!) {
	viewer {
		zones(filter: { zoneTag: $zoneTag }) {
			emailRoutingAdaptiveGroups(
				filter: { date_geq: $start, date_leq: $end }
				limit: 10000
				orderBy: [date_DESC]
			) {
				count
				dimensions {
					date
					ruleMatched
					action
				}
			}
		}
	}
}

Jednotlivé směrovací události

Dotaz na jednotlivé směrovací události pro účely řešení problémů:

query RecentRoutingEvents($zoneTag: string!, $start: Time!, $end: Time!) {
	viewer {
		zones(filter: { zoneTag: $zoneTag }) {
			emailRoutingAdaptive(
				filter: { datetime_geq: $start, datetime_leq: $end }
				limit: 50
				orderBy: [datetime_DESC]
			) {
				datetime
				from
				to
				subject
				status
				action
				ruleMatched
				messageId
				errorDetail
				dkim
				dmarc
				spf
				isSpam
			}
		}
	}
}

Další kroky