Dans cet épisode de la série couvrant mon voyage dans le monde de l’observabilité native du cloud, je continue à explorer un tableau de bord open source et un projet de visualisation. Si vous avez manqué l’un des articles précédents, revenez à l’introduction pour une mise à jour rapide.
Après avoir posé les bases de cette série dans l’article initial, j’ai passé un peu de temps dans le deuxième article à partager qui sont les acteurs de l’observabilité. J’ai également discuté des équipes dans lesquelles ces joueurs se trouvent dans ce monde d’o11y natif du cloud. Pour le troisième article, j’ai regardé la discussion en cours autour de la surveillance piliers contre phases. Dans le quatrième article, j’ai parlé de garder vos options ouvertes avec les normes open source. Dans le cinquième volet de cette série, j’ai parlé de l’introduction d’applications monolithiques dans le monde natif du cloud. Dans mon sixième article, je vous ai présenté une introduction à un nouveau projet de tableau de bord et de visualisation open source et expliqué comment installer le projet sur votre ordinateur de développeur local. Le septième article a exploré l’API et les outils fournis par le projet Perses. Enfin, dans mon article précédent, j’ai couvert la spécification de tableau de bord ouvert que vous devez suivre pour commencer à créer votre premier tableau de bord.
Dans cet article, vous allez commencer à développer votre tout premier tableau de bord !
En tant que développeur depuis mes débuts dans l’informatique, il a été très intéressant d’explorer les complexités d’o11y cloud-native. La surveillance des applications va bien au-delà de la simple écriture et du déploiement de code, en particulier dans le monde natif du cloud. Une chose demeure la même : la maintenance de l’architecture de votre organisation nécessite toujours à la fois une vision vigilante et une compréhension des standards ouverts disponibles.
Cet article fait partie de mes efforts continus pour acquérir une expérience pratique dans le monde natif du cloud. Je vais vous aider à commencer à utiliser un modèle de base pour un tableau de bord minimal de l’atelier précédent et à commencer à concevoir des composants pour votre tout premier tableau de bord. Il s’agit d’un laboratoire dans l’atelier en ligne gratuit plus complet. N’hésitez pas à commencer dès le début de cet atelier ici si vous avez manqué quelque chose auparavant :
Passons maintenant à la conception de votre premier tableau de bord. Notez que cet article n’est qu’un bref résumé, veuillez donc consulter l’atelier complet disponible en ligne en tant qu’atelier 4.5 pour travailler vous-même sur le modèle de données pour les tableaux de bord :
Ce qui suit est un bref aperçu de ce qui se trouve dans ce laboratoire spécifique de l’atelier.
Premier tableau de bord
Chaque laboratoire commence par un objectif. Dans ce cas, c’est assez simple :
- Créez votre premier tableau de bord de base à partir du modèle de base que vous avez créé lors du dernier atelier à l’aide du projet Perses.
Les laboratoires démarrent avec une vue de ce que votre serveur devrait vous montrer comme modèle de tableau de bord de base vide, prêt pour que vous commenciez à ajouter votre tout premier composant. Vous démarrez cette aventure en apprenant à ajouter un StatChart
en particulier, un pour afficher l’utilisation de la mémoire sous forme de pourcentage.
Vous êtes guidé à travers la spécification pour ajouter une nouvelle entrée pour votre composant dans le panel
section de la définition de la ressource :
"statMemory": {
"kind": "Panel",
"spec": {
"display": {
"name": "Memory Usage",
"description": "This is a stat chart"
},
"plugin": {
"kind": "StatChart",
"spec": {
"query": {
"kind": "TimeSeriesQuery",
"spec": {
"plugin": {
"kind": "PrometheusTimeSeriesQuery",
"spec": {
"query": "100 - ((node_memory_MemAvailable_bytes{job='$job',instance=~'$instance'} * 100) / node_memory_MemTotal_bytes{job='$job',instance=~'$instance'})" }
}
}
},
"calculation": "LastNumber", "unit": { "kind": "Percent" }
}
}
Cela fait suite à ce que nous avons appris dans le laboratoire précédent, avec un kind
, spec
, et plugin
section aménagée pour assurer la visualisation du composant à l’aide d’un StatChart
et un PromQL
query pour rassembler les données de métriques que nous voulons afficher.
Une fois notre composant défini, nous devons le localiser sur notre tableau de bord, ce qui se fait dans le layouts
section, comme illustré ici :
"layouts": [
{
"kind": "Grid",
"spec": {
"display": { "title": "My First Row", "collapse": { "open": true } },
"items": [
{
"x": 0,
"y": 2,
"width": 2,
"height": 3,
"content": { "$ref": "#/spec/panels/statMemory" }
]
}
}
]
Notez que dans le laboratoire de l’atelier, ces extraits de code vous sont fournis en tant qu’assistants, mais j’ai également tenté de partager des tests et une validation appropriés lorsque vous travaillez vers un tableau de bord final à l’aide de l’outil CLI fourni. Cela signifie qu’avant de continuer, vous validez le JSON que vous avez créé (et constatez que ce qui précède layouts
il manque une accolade fermante après la ligne 12.)
$ ./bin/percli lint -f [PATH_TO_RESOURCE]/myfirstdashboard.json Error: unable to read file, format invalid: yaml: did not find expected ',' or '}'
Après avoir résolu ce problème, vous trouvez à l’aide de l’outil CLI que vous pouvez appliquer vos modifications :
$ ./bin/percli lint -f [PATH_TO_RESOURCE]/myfirstdashboard.json your resources look good $ ./bin/percli apply -f [PATH_TO_RESOURCE]/myfirstdashboard.json object "Dashboard" "MyFirstDashboard" has been applied in the project "WorkshopProject"
Vérifiez ensuite qu’ils ont été appliqués sur votre tableau de bord :
Vous pouvez voir que votre composant d’utilisation de la mémoire est placé dans la première ligne de votre tableau de bord et indique l’utilisation actuelle de la mémoire pour l’instance de serveur sélectionnée.
Lorsque vous survolez ce composant, vous remarquez une icône d’information avec un texte contextuel comme fonction d’aide. Mettons donc à jour cela pour nous vanter un peu de notre tout premier composant dans un tableau de bord en modifiant ce texte dans le panel
définition:
"statMemory": {
"kind": "Panel",
"spec": {
"display": {
"name": "Memory Usage",
"description": "This is my first ever stat chart!"
}
Maintenant, lorsque nous survolons notre icône d’information pour ce composant, nous pouvons voir ce qui suit :
C’est juste une petite façon amusante d’enregistrer historiquement nos progrès dans le monde de la visualisation de données. Il s’agissait d’une courte visite guidée de l’ajout de votre premier composant et de la création de votre premier tableau de bord. Comme cela n’est vraiment utile à personne, vous continuerez à vider votre tableau de bord dans les ateliers avancés suivants.
Plus à venir
Ensuite, je vous emmène plus loin dans le projet Perses avec plus de matériel d’atelier à partager. Restez à l’écoute pour plus d’informations sur l’expérience pratique réelle alors que mon parcours cloud natif o11y se poursuit. : M