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.

AVAILABILITY
Cette fonctionnalité est en disponibilité limitée. Pour l’utiliser, demandez l’accès en envoyant un e-mail à l’adresse 🔗 - Adobe active OpenTelemetry pour vos environnements peu de temps après avoir répondu à votre demande. Si votre environnement utilise actuellement l’intégration APM intégrée d’Adobe, cette intégration cesse d’envoyer des données une fois que OpenTelemetry est activé, car les deux ne peuvent pas s’exécuter en même temps.
Notez qu’il n’est pas disponible pour les environnements couverts par la loi HIPAA, les environnements de développement rapide (RDE) et les sandbox.

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é :

Flux logique de télémétrie des services AEM vers la plateforme d’observabilité du client

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 ?

Signal
Ce que vous obtenez
Activation
Traces
L’étendue des requêtes gérées par votre application est la suivante : requêtes HTTP entrantes, traitement de servlet et appels sortants.
Configurez et déployez otel.yaml fichier à l’aide du pipeline de configuration Cloud Manager. Voir tutoriel sur la configuration
Mesures
Mesures d’exécution JVM (mémoire, récupération de l’espace mémoire, threads, utilisation de CPU) et mesures de requête du serveur HTTP (taux, latence et taux d’erreur).
Configurez et déployez otel.yaml fichier avec metrics: true à l’aide du pipeline de configuration Cloud Manager. Voir ​ Tutoriel sur la configuration
Journaux
Entrées du journal de l’application AEM (WARN et versions ultérieures), envoyées à l’aide du signal des journaux OpenTelemetry. Notez que les journaux du Dispatcher et du réseau CDN ne sont PAS envoyés.
Configurez et déployez otel.yaml fichier avec logs: true à l’aide du pipeline de configuration Cloud Manager. Voir ​ Tutoriel sur la configuration

Quelques 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.count et http.server.request.duration.
WARNING
Si vous envoyez des journaux via OpenTelemetry et via Transfert de journal vers la même destination, vous recevez des messages de journal en double. Activez un seul chemin d’accès par destination ou envoyez-les vers une destination différente.
Le transfert de journal est un mécanisme distinct et continue de fonctionner comme aujourd’hui.

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.name identifie 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-prod est le service de publication d’environnement 67890 dans le 12345 de programme, s’exécutant dans un environnement de production.

  • deployment.environment identifie le type d’environnement, tel que prod ou stage.

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 (authHeaderName et authHeaderValue), référencées en tant que variable d’environnement Cloud Manager secret nommée OTEL_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 :

Hébergé par le fournisseur (SaaS)
Auto-hébergé
Configuration
Rien à installer ou à exploiter.
Vous installez, mettez à niveau et mettez à l’échelle la plateforme.
Emplacement des données
La télémétrie quitte votre environnement et peut nécessiter un examen de la sécurité ou de la confidentialité.
La télémétrie reste dans l’infrastructure que vous contrôlez.
Fonctions
Les tableaux de bord, les alertes et les vues APM sont généralement intégrés. Certaines fonctionnalités sont spécifiques à un fournisseur.
Les fonctionnalités dépendent du logiciel que vous choisissez.
Coût
Le prix dépend généralement du volume de données.
Vous payez pour l’infrastructure et le temps d’ingénierie.
Disponibilité
Le fournisseur exploite le service.
Vous gérez la disponibilité, le stockage, les sauvegardes et la rétention.

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.

Ressources supplémentaires

recommendation-more-help
experience-manager-learn-help-cloud-service