Observability via OpenTelemetry
Découvrez comment AEM as a Cloud Service utilise OpenTelemetry pour envoyer des traces, des mesures et des journaux à la plateforme de surveillance des performances des applications (APM) de votre choix.
Adobe remplace l’intégration intégrée de surveillance des performances des applications (APM) dans AEM as a Cloud Service par OpenTelemetry, une norme ouverte pour la collecte et l’exportation des traces, des mesures et des journaux. Avec OpenTelemetry, vous apportez votre propre point d’entrée APM et surveillez AEM avec le reste de vos applications, en utilisant les outils que vos équipes connaissent déjà. Pour plus d’informations, consultez la documentation OpenTelemetry.
Cet article explique ce que l’intégration fournit, comment la télémétrie circule d’AEM vers votre plateforme APM, ce que vous contrôlez et ce qu’il faut prendre en compte avant de l’activer. Le tutoriel de configuration explique comment configurer OpenTelemetry pour votre environnement AEM.
Pourquoi OpenTelemetry
Avec OpenTelemetry, vous pouvez :
- Choisissez votre plateforme : envoyez des données télémétriques à tout serveur principal qui accepte le protocole OpenTelemetry sur HTTPS (OTLP/HTTPS), y compris à votre fournisseur actuel s’il prend en charge OTLP.
- Voir l’image complète : obtenez des traces, des mesures et des journaux par le biais d’une seule intégration, au lieu de mécanismes distincts.
- Enquêtez plus rapidement : recherchez les requêtes lentes ou en échec, suivez l’intégrité de JVM au fil du temps et corrélez le comportement d’AEM avec vos autres services lors d’un incident.
- Gardez le contrôle : configurez la destination vers laquelle envoyer des données à l’aide du pipeline de configuration Cloud Manager et gérez les tableaux de bord, les alertes et la conservation des données sur votre propre plateforme.
Adobe fournit et met à jour l’agent Java OpenTelemetry qui s’exécute avec AEM, afin que vous ne l’installiez pas et ne le mettiez pas à niveau. Vous décidez où va la télémétrie.
Fonctionnement
Le diagramme suivant illustre le flux logique de la télémétrie des services AEM vers votre plateforme d’observabilité :
L’agent Java OpenTelemetry collecte la télémétrie de l’application des services AEM et l’envoie à un collecteur OpenTelemetry s’exécutant dans l’environnement AEM. Le collecteur traite la télémétrie et la transfère via OTLP/HTTPS vers votre plateforme d’observabilité configurée.
Seule la télémétrie générée par votre application AEM est envoyée. Les informations sur le runtime et la plateforme sous-jacents, telles que les noms d’hôtes internes, les adresses, les identifiants de conteneur et les détails du système d’exploitation ou des processus, sont supprimées avant que les données ne quittent votre environnement.
Quelle télémétrie est disponible ?
otel.yaml fichier à l’aide du pipeline de configuration Cloud Manager. Voir tutoriel sur la configurationotel.yaml fichier avec metrics: true à l’aide du pipeline de configuration Cloud Manager. Voir Tutoriel sur la configurationotel.yaml fichier avec logs: true à l’aide du pipeline de configuration Cloud Manager. Voir Tutoriel sur la configurationQuelques détails à garder à l’esprit :
- Pour que les traces restent concentrées sur les requêtes d’application, les activités internes volumineuses telles que les sondes d’intégrité et les tâches du planificateur (Quartz) sont filtrées.
- Les plages internes au framework AEM affinées, telles que la résolution des ressources Sling, les services OSGi et l’accès JCR, ne sont pas émises dans cette version.
- Les mesures utilisent des noms OpenTelemetry standard, par exemple
jvm.memory.used,jvm.gc.duration,jvm.thread.countethttp.server.request.duration.
Identification des services AEM
Chaque entrée de trace, de mesure et de journal comporte des attributs de ressource qui permettent à votre plateforme de distinguer les environnements et les niveaux :
-
service.nameidentifie le programme, l’environnement, le niveau et le type d’environnement, en suivant ce modèle :code language-text cm-p<program>-e<environment>-aem-<author|publish|preview>-<environment-type>Par exemple,
cm-p12345-e67890-aem-publish-prodest le service de publication d’environnement 67890 dans le 12345 de programme, s’exécutant dans un environnement de production. -
deployment.environmentidentifie le type d’environnement, tel queprodoustage.
Utilisez ces attributs pour filtrer et regrouper les mesures de télémétrie, et pour corréler les logs avec les traces et les mesures du même service.
Ce que vous contrôlez
Vous configurez l’intégration en déployant le fichier config/otel.yaml à l’aide du pipeline de configuration Cloud Manager.
L’exemple de fichier de configuration est le suivant :
kind: "Otel"
version: "v1"
metadata:
envTypes:
- "dev"
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "<YOUR_OTLP_HTTPS_ENDPOINT>"
authHeaderName: "Authorization"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
metrics: true
logs: true
advancedNetworking: false
La configuration détermine :
- Les types d’environnements (
prod,stage,dev) auxquels elle s’applique - Type de destination (
newrelic,dynatrace,generic, etc.) et point d’entrée OTLP/HTTPS - Les informations d’authentification (
authHeaderNameetauthHeaderValue), référencées en tant que variable d’environnement Cloud Manager secret nomméeOTEL_CUSTOMER_AUTH - Si les mesures (
metrics: true) et les logs (logs: true) sont exportés en plus des traces - Si la mise en réseau avancée (
advancedNetworking: true) est utilisée pour la destination
Les informations d’authentification (authHeaderValue) doivent être stockées sous la forme d’une variable d’environnement Cloud Manager secret nommée OTEL_CUSTOMER_AUTH et référencée à partir du fichier de configuration. Ne stockez jamais les informations d’identification en tant que texte brut dans le référentiel.
Si votre point d’entrée OTLP/HTTPS est privé ou nécessite un trafic sortant provenant d’une adresse IP stable et connue, activez l’option Mise en réseau avancée avec sortie dédiée. Le paramètre advancedNetworking n’a aucun effet, sauf si Cloud Manager a déjà configuré la mise en réseau avancée pour l’environnement. Un point d’entrée SaaS public utilise le chemin d’accès réseau sortant standard.
Destinations prises en charge
Vous pouvez envoyer des données de télémétrie à n’importe quelle plateforme APM qui expose un point d’entrée OTLP/HTTPS, notamment :
- New Relic
- Dynatrace
- Datadog
- Grafana Cloud
- Splunk Observability Cloud
- Dash0
- Nid D’Abeille
- Observabilité élastique
- Logique Sumo
- Observability Cloud ServiceNow
Cette liste n’est pas exhaustive. OpenTelemetry définit le format de télémétrie et le protocole d’exportation, et votre plateforme sélectionnée détermine la manière dont les données sont interrogées, visualisées, conservées et alertées.
Choisir une plateforme d’observabilité
Vous avez besoin d’une plateforme qui accepte OTLP/HTTPS pour recevoir la télémétrie. Adobe ne le fournit pas, vous devez apporter votre propre plateforme d’observabilité.
Si votre organisation utilise déjà l’une des plateformes ci-dessus, commencez là. Dans le cas contraire, choisissez entre une plateforme SaaS (hébergée par un fournisseur) et une plateforme auto-hébergée :
Avant de commencer
- Environnements : vous pouvez activer OpenTelemetry individuellement dans les environnements de production, d’évaluation et de développement. Toutefois, les environnements conformes à la loi HIPAA, les programmes Sandbox et les Environnements de développement rapide (RDE) ne sont PAS pris en charge.
- Versions : l’intégration prend en charge l’agent Java OpenTelemetry 2.x et le protocole d’exportation OTLP/HTTPS.
Étapes suivantes
Suivez le tutoriel de configuration pour configurer OpenTelemetry avec l’exemple de projet WKND d’AEM ou votre propre projet AEM.