Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fr] Move new observability primer page #5927

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 165 additions & 0 deletions content/fr/docs/concepts/observability-primer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
---
title: Introduction à l'observabilité
description: Concepts fondamentaux de l'observabilité
weight: 9
default_lang_commit: 71833a5f8b84110dadf1e98604b87a900724ac33
cSpell:ignore: webshop
---

## Qu'est-ce que l'observabilité ?

L'observabilité est la capacité à comprendre l'état d'un système en examinant
ses données sortantes, sans avoir besoin de connaître son fonctionnement
interne. Elle permet non seulement de résoudre facilement les problèmes et
d'appréhender les nouveaux "inconnus inconnus" mais également de répondre à la
question "Pourquoi cela arrive-t-il ?"

Pour pouvoir poser ce type de questions à votre système, votre application doit
être correctement instrumentée, c'est-à-dire que votre code doit émettre :
[des signaux](/docs/concepts/signals/) tels que
[des traces](/docs/concepts/signals/traces/),
[des métriques](/docs/concepts/signals/metrics/), et
[des logs](/docs/concepts/signals/logs/).

Une application est correctement instrumentée si les développeurs disposent de
toutes les informations nécessaires pour corriger un problème et n'ont pas
besoin d'ajouter une instrumentation supplémentaire.

[OpenTelemetry](/docs/what-is-opentelemetry/) est le mécanisme permettant
d'instrumenter le code des applications afin de rendre le système observable.

## Fiabilité et métriques

Le terme **télémétrie** fait référence aux données émises par un système et son
comportement. Les données peuvent prendre la forme de
[traces](/docs/concepts/signals/traces/), de
[métriques](/docs/concepts/signals/metrics/), et de
[logs](/docs/concepts/signals/logs/).

La **fiabilité** répond à la question : "Est-ce que le service fait ce que les
utilisateurs attendent de lui ?" Un système peut afficher un pourcentage de
disponibilité de 100%, mais s'il ne répond pas à la demande de l'utilisateur
(par exemple : ajouter une paire de chaussettes noires dans le panier à chaque
fois qu'il clique sur "Ajouter au panier"), alors le système pourrait être
considéré comme **peu** fiable.

Les **métriques** sont un ensemble de données numériques collectées pour votre
infrastructure ou votre application sur une période donnée. Le nombre d'erreurs
système, le nombre d'erreurs sur les requêtes ainsi que l'utilisation mémoire
d'un service donné sont quelques exemples de métriques. Pour plus d'informations
sur les métriques et leur rôle dans OpenTelemetry, référez-vous à la page
[Métriques](/docs/concepts/signals/metrics/).

L'indicateur de niveau de service, également connu sous le nom de **SLI**, est
un indicateur de fonctionnement d'un service qui est évalué côté utilisateur. La
vitesse à laquelle une page Web se charge est un exemple de SLI.

Les objectifs de niveau de service, communément appelés **SLO**, permettent de
rendre compte à une organisation ou à d'autres équipes de la fiabilité d'un
système.

## Comprendre le traçage distribué

Le traçage distribué vous permet d'observer les requêtes au fur et à mesure
qu'elles se propagent au travers de systèmes distribués complexes. Il vous offre
une meilleure visibilité sur la santé de votre application ou de votre système
et vous permet de debugger un comportement qu'il est difficile de reproduire
localement. Le traçage distribué est indispensable pour les systèmes distribués
pour lesquels nous rencontrons souvent des problèmes aléatoires ou difficiles à
reproduire localement.

Pour comprendre le traçage distribué, vous devez comprendre le rôle de chacun de
ses composants : les logs, les spans et les traces.

### Logs

Un **log** est un message horodaté émis par des services ou d'autres composants.
Contrairement aux [traces](#les-traces-distribuées), ils ne sont pas
nécessairement associés à une requête ou une transaction utilisateur en
particulier. Presque tous les logiciels émettent des logs. Par le passé, les
développeurs et les opérateurs se sont largement appuyés sur les logs pour
comprendre le comportement des systèmes.

Exemple de log :

```text
I, [2021-02-23T13:26:23.505892 #22473] INFO -- : [6459ffe1-ea53-4044-aaa3-bf902868f730] Started GET "/" for ::1 at 2021-02-23 13:26:23 -0800
```

Les logs, à eux seuls, ne suffisent pas pour suivre précisément l'exécution du
code, car ils manquent souvent de contexte, comme l'origine exacte de leur
déclenchement.

Ils sont nettement plus utiles lorsqu'ils font partie d'un [span](#spans) ou
lorsqu'ils sont mis en corrélation avec une trace ou un span.

Pour plus d'informations sur les logs et leur rôle dans OpenTelemetry,
référez-vous à la page [Logs](/docs/concepts/signals/logs/).

### Spans

Un **span** représente une unité de travail ou d'opération. Il retrace les
actions effectuées par une requête, offrant une vue détaillée des événements qui
se sont déroulés pendant l'exécution de l'opération.

Un span contient un nom, des données de temps,
[des messages de log structurés](/docs/concepts/signals/traces/#span-events), et
[autres métadonnées (les attributs)](/docs/concepts/signals/traces/#attributes)
pour fournir des informations sur l'opération qu'il suit.

#### Attributs de span

Les attributs de span sont des métadonnées attachées à un span.

La table suivante liste des exemples d'attributs de span :

| Clé | Valeur |
| :-------------------------- | :--------------------------------------------------------------------------------- |
| `http.request.method` | `"GET"` |
| `network.protocol.version` | `"1.1"` |
| `url.path` | `"/webshop/articles/4"` |
| `url.query` | `"?s=1"` |
| `server.address` | `"exemple.com"` |
| `server.port` | `8080` |
| `url.scheme` | `"https"` |
| `http.route` | `"/webshop/articles/:article_id"` |
| `http.response.status_code` | `200` |
| `client.address` | `"192.0.2.4"` |
| `client.socket.address` | `"192.0.2.5"` (le client passe par un proxy) |
| `user_agent.original` | `"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"` |

Pour plus d'informations sur les spans et leur rôle dans OpenTelemetry,
référez-vous à la page [Spans](/docs/concepts/signals/traces/#spans).

### Les traces distribuées

Une **trace distribuée**, plus communément connu sous le nom de **trace**,
enregistre les chemins pris par les requêtes (lancées par une application ou un
utilisateur final) au fur et à mesure qu'elles se propagent au travers
d'architectures multiservices, tels que des microservices ou des applications
serverless.

Une trace se compose d'un ou de plusieurs spans. Le premier span représente le
span racine.

Chaque span racine représente une requête, depuis son origine jusqu'à son
aboutissement. Les spans présents sous le parent fournissent plus d'informations
sur ce qui se passe pendant une requête (ou les étapes qui composent une
requête).

Sans traçage, il peut être difficile d'identifier pour un système distribué la
cause première de problèmes de performance. Le traçage simplifie le débogage et
la compréhension des systèmes distribués en décomposant le parcours des requêtes
au fil de leur exécution dans le système.

De nombreuses plateformes d'observabilité représentent les traces sous forme de
diagrammes en cascade comme celui-ci :

![Exemple de trace](/img/waterfall-trace.svg 'Diagramme en cascade de traces')

Les diagrammes en cascade permettent de visualiser la relation parent-enfant
entre un span racine et ses spans enfants. Lorsqu'un span encapsule un autre
span, on parle de relation imbriquée.

Pour plus d'informations sur les traces et leur rôle dans OpenTelemetry,
référez-vous à la page [Traces](/docs/concepts/signals/traces/).
31 changes: 15 additions & 16 deletions content/fr/docs/what-is-opentelemetry.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@ default_lang_commit: 71833a5f8b84110dadf1e98604b87a900724ac33

OpenTelemetry, c'est :

- Un framework
d'[observabilité](/docs/concepts/observability-primer/#what-is-observability)
et des outils conçus pour créer et gérer des données de télémétrie telles que
des [traces](/docs/concepts/signals/traces/), des
- Un framework d'[observabilité](/docs/concepts/observability-primer/) et des
outils conçus pour créer et gérer des données de télémétrie telles que des
[traces](/docs/concepts/signals/traces/), des
Comment on lines -11 to +13
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This, and similar changes in this page that remove #what-is-observability from links, need to be undone.

[métriques](/docs/concepts/signals/metrics/), et des
[logs](/docs/concepts/signals/logs/)
- Indépendant d'un fournisseur et d'un outil, ce qui signifie qu'il peut être
Expand All @@ -26,13 +25,13 @@ OpenTelemetry, c'est :
infrastructure, ou environnement d'exécution. Le stockage et la visualisation
des données sont intentionnellement laissés à d'autres outils

## Qu'est-ce que l'observabilité ?
## Qu'est-ce que l'observabilité ? {#what-is-observability}

L'[observabilité](/docs/concepts/observability-primer/#what-is-observability)
est la capacité de comprendre l'état interne d'un système en examinant ses
données sortantes. Dans un contexte logiciel, cela signifie être capable de
comprendre l'état interne d'un système en examinant ses données de télémétrie,
qui incluent les traces, métriques et logs.
L'[observabilité](/docs/concepts/observability-primer/) est la capacité de
comprendre l'état interne d'un système en examinant ses données sortantes. Dans
un contexte logiciel, cela signifie être capable de comprendre l'état interne
d'un système en examinant ses données de télémétrie, qui incluent les traces,
métriques et logs.

Pour rendre un système observable, il doit être
[instrumenté](/docs/concepts/instrumentation). Cela signifie que le code doit
Expand All @@ -41,12 +40,12 @@ Pour rendre un système observable, il doit être
[logs](/docs/concepts/signals/logs/). Les données produites doivent être
transmises à un backend d'observabilité.

## Pourquoi OpenTelemetry ?
## Pourquoi OpenTelemetry ? {#why-opentelemetry}

Avec l'essor du cloud computing, des architectures en microservices, et des
exigences commerciales de plus en plus complexes, le besoin
d'[observabilité](/docs/concepts/observability-primer/#what-is-observability)
des logiciels et de l'infrastructure est plus grand que jamais.
d'[observabilité](/docs/concepts/observability-primer/) des logiciels et de
l'infrastructure est plus grand que jamais.

OpenTelemetry répond au besoin d'observabilité tout en suivant deux principes
clés :
Expand All @@ -62,7 +61,7 @@ d’aujourd’hui.
Si vous souhaitez en savoir plus, consultez la page
[Mission, vision et valeurs](/community/mission/) d'OpenTelemetry.

## Composants principaux d'OpenTelemetry
## Composants principaux d'OpenTelemetry {#main-opentelemetry-components}

OpenTelemetry se compose des principaux composants suivants :

Expand Down Expand Up @@ -93,7 +92,7 @@ OpenTelemetry est pris en charge par de nombreux
[fournisseurs](/ecosystem/vendors/), dont beaucoup fournissent un support
commercial à OpenTelemetry et contribuent au projet directement.

## Extensibilité
## Extensibilité {#extensibility}

OpenTelemetry est conçu pour être extensible. Quelques exemples de la façon dont
il peut être étendu incluent :
Expand Down Expand Up @@ -127,7 +126,7 @@ Si vous utilisez actuellement OpenTracing ou OpenCensus, vous pouvez découvrir
comment migrer vers OpenTelemetry dans le
[guide de migration](/docs/migration/).

## Et ensuite ?
## Et ensuite ? {#what-next}

- [Pour commencer](/docs/getting-started/) — Lancez-vous directement !
- Découvrez les [concepts d'OpenTelemetry](/docs/concepts/)
Loading