


Comment utiliser Prometheus+Grafana pour surveiller les applications Springboot
1 Introduction
À mesure que le projet avance, j'ai de plus en plus l'impression que lorsqu'un système est mis en ligne, la surveillance du fonctionnement et de la maintenance est trop importante.
Prometheus est un excellent système open source combinant des bases de données de surveillance, d'alarme et de séries chronologiques. Dans le système de gestion de conteneurs Kubernetes
le plus courant, il est généralement associé à Prometheus<.> pour la surveillance. <code>Kubernetes
容器管理系统中,通常会搭配Prometheus
进行监控。
2.1 引入到Springboot
将Prometheus
引入依赖如下:
<dependency> <groupid>io.micrometer</groupid> <artifactid>micrometer-registry-prometheus</artifactid> </dependency>
对于Springboot,要开启Actuator
,并打开对应的Endpoint
:
management.endpoints.web.exposure.include=* # 或者 management.endpoints.web.exposure.include=prometheus
启动Springboot
后,可以通过下面URL看能不能正确获取到监控数据:
localhost:8080/actuator/prometheus
获取数据成功,说明Springboot
能正常提供监控数据。
2.2 Docker方式使用
为了方便,使用Docker
启动Prometheus
:
# 拉取docker镜像 docker pull prom/prometheus
准备配置文件prometheus.yml
:
scrape_configs: # 可随意指定 - job_name: 'spring' # 多久采集一次数据 scrape_interval: 15s # 采集时的超时时间 scrape_timeout: 10s # 采集的路径 metrics_path: '/actuator/prometheus' # 采集服务的地址,设置成Springboot应用所在服务器的具体地址 static_configs: - targets: ['hostname:9000','hostname:8080']
启动docker实例:
# 端口为9090,指定配置文件
docker run -d -p 9090:9090 -v ~/temp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml
2.3 测试与查看
成功启动后,就可以打开网页查看了,并且能图形化展示,URL为http://localhost:9090/。
如上图所示,打开网页后,随便选取一个对应的监控指标与参数,点击Execute
就可以查看了。
3 Grafana
Grafana
是一个开源的度量分析与可视化套件,纯JavaScript
开发的前端工具,通过访问库(如InfluxDB
),展示自定义报表、显示图表等。它的UI十分灵活,有丰富的插件和模板,功能强大。一般用在时序数据的监控方面。
3.1 Docker安装与启动
# 拉取镜像 docker pull grafana/grafana # 运行实例 docker run -d -p 3000:3000 grafana/grafana
启动成功后,访问http://localhost:3000 检查是否成功,初始管理员账号密码为admin/admin
。
3.2 配置数据源
Grafana
展示数据,则需要配置对应的数据源,本文中配置之前安装启用的Prometheus
数据源,具体配置如下图所示:
需要注意的是Access
要选Browser
模式,否则无法正常获取数据。配置完成后,点击Save & Test
即可。
3.3 模板套用
能够获取数据后,就可以自定义数据可视化展示了。但如果自己一条指标一条指标的加,就会很麻烦。实际上,Grafana
提供了许多优秀的模板,可以网页https://grafana.com/grafana/dashboards 查找。
本文使用Spring Boot 2.1 Statistics模板,导入方法如下:
点击+
号 --> Import
Introduisez
Prometheus
dans les dépendances comme suit :
springboot.version=2.2.5 micrometer-registry-prometheus=1.3.5 prometheus.version=2.16 grafana.version=6.7.0-beta1
Pour Springboot, activez Actuator
, et ouvrez le Endpoint
correspondant :
Après avoir démarré Springboot
, vous pouvez vérifier si la surveillance peut être obtenue correctement via les données URL suivantes :
localhost:8080/actuator/prometheus
Les données sont obtenues avec succès, indiquant que Springboot
peut fournir des données de surveillance normalement.
Docker
pour démarrer Prometheus
: #🎜🎜#rrreee#🎜🎜#Préparez le fichier de configuration prometheus.yml
: #🎜🎜#rrreee#🎜🎜#Démarrez l'instance docker : #🎜🎜##🎜🎜##🎜🎜#2.3 Test et visualisation#🎜🎜##🎜🎜##🎜🎜#Après un démarrage réussi, vous pouvez ouvrir la page Web pour afficher et affichez-le graphiquement, l'URL est http://localhost:9090/. #🎜🎜##🎜🎜## Le port est 9090 , spécifiez le fichier de configuration
docker run -d -p 9090:9090 -v ~/temp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/ etc/prometheus/prometheus .yml#🎜🎜#

Exécuter
pour l'afficher. #🎜🎜##🎜🎜##🎜🎜#3 Grafana#🎜🎜##🎜🎜##🎜🎜#Grafana
est une suite open source d'analyse et de visualisation de métriques, pure JavaScript affiche des rapports personnalisés, des graphiques, etc. en accédant à des bibliothèques (telles que <code>InfluxDB
). Son interface utilisateur est très flexible, riche en plug-ins et modèles et puissante. Généralement utilisé pour surveiller les données de séries chronologiques. #🎜🎜##🎜🎜##🎜🎜#3.1 Installation et démarrage de Docker #🎜🎜##🎜🎜#rrreee#🎜🎜#Après un démarrage réussi, visitez http://localhost:3000 pour vérifier s'il a réussi et le compte administrateur initial Le mot de passe est admin/admin
. #🎜🎜##🎜🎜##🎜🎜#3.2 Configurer la source de données #🎜🎜##🎜🎜##🎜🎜#Grafana
Pour afficher les données, vous devez configurer la source de données correspondante, qui est configuré dans cet article La source de données Prometheus
installée et activée précédemment, la configuration spécifique est la suivante : #🎜🎜##🎜🎜#
Access doit être sélectionné en mode <code> Navigateur
, sinon les données ne peuvent pas être obtenues normalement. Une fois la configuration terminée, cliquez sur Enregistrer et tester
. #🎜🎜##🎜🎜##🎜🎜#3.3 Application de modèle#🎜🎜##🎜🎜##🎜🎜#Après avoir obtenu les données, vous pouvez personnaliser l'affichage de la visualisation des données. Mais si vous ajoutez un indicateur à la fois, ce sera très gênant. En fait, Grafana
fournit de nombreux excellents modèles, qui peuvent être trouvés sur https://grafana.com/grafana/dashboards. #🎜🎜##🎜🎜#Cet article utilise le modèle Spring Boot 2.1 Statistics La méthode d'importation est la suivante : #🎜🎜##🎜🎜#Cliquez sur le + numéro--> Importer
--> Entrez le lien ou l'ID du modèle --> #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Après une importation réussie, vous pouvez surveiller les données, et l'interface est vraiment sympa : #🎜🎜##🎜🎜##🎜🎜# # 🎜🎜##🎜🎜#Les informations sur la version du logiciel dans l'exemple de cet article sont les suivantes : #🎜🎜#rrreeeCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Introduction à Jasypt Jasypt est une bibliothèque Java qui permet à un développeur d'ajouter des fonctionnalités de chiffrement de base à son projet avec un minimum d'effort et ne nécessite pas une compréhension approfondie du fonctionnement du chiffrement. Haute sécurité pour le chiffrement unidirectionnel et bidirectionnel. technologie de cryptage basée sur des normes. Cryptez les mots de passe, le texte, les chiffres, les binaires... Convient pour l'intégration dans des applications basées sur Spring, API ouverte, pour une utilisation avec n'importe quel fournisseur JCE... Ajoutez la dépendance suivante : com.github.ulisesbocchiojasypt-spring-boot-starter2 1.1. Les avantages de Jasypt protègent la sécurité de notre système. Même en cas de fuite du code, la source de données peut être garantie.

Scénario d'utilisation 1. La commande a été passée avec succès mais le paiement n'a pas été effectué dans les 30 minutes. Le paiement a expiré et la commande a été automatiquement annulée 2. La commande a été signée et aucune évaluation n'a été effectuée pendant 7 jours après la signature. Si la commande expire et n'est pas évaluée, le système donne par défaut une note positive. 3. La commande est passée avec succès. Si le commerçant ne reçoit pas la commande pendant 5 minutes, la commande est annulée. 4. Le délai de livraison expire et. un rappel par SMS est envoyé... Pour les scénarios avec des délais longs et de faibles performances en temps réel, nous pouvons utiliser la planification des tâches pour effectuer un traitement d'interrogation régulier. Par exemple : xxl-job Aujourd'hui, nous allons choisir

1. Redis implémente le principe du verrouillage distribué et pourquoi les verrous distribués sont nécessaires. Avant de parler de verrous distribués, il est nécessaire d'expliquer pourquoi les verrous distribués sont nécessaires. Le contraire des verrous distribués est le verrouillage autonome. Lorsque nous écrivons des programmes multithreads, nous évitons les problèmes de données causés par l'utilisation d'une variable partagée en même temps. Nous utilisons généralement un verrou pour exclure mutuellement les variables partagées afin de garantir l'exactitude de celles-ci. les variables partagées. Son champ d’utilisation est dans le même processus. S’il existe plusieurs processus qui doivent exploiter une ressource partagée en même temps, comment peuvent-ils s’exclure mutuellement ? Les applications métier d'aujourd'hui sont généralement une architecture de microservices, ce qui signifie également qu'une application déploiera plusieurs processus si plusieurs processus doivent modifier la même ligne d'enregistrements dans MySQL, afin d'éviter les données sales causées par des opérations dans le désordre, les besoins de distribution. à introduire à ce moment-là. Le style est verrouillé. Vous voulez marquer des points

Springboot lit le fichier, mais ne peut pas accéder au dernier développement après l'avoir empaqueté dans un package jar. Il existe une situation dans laquelle Springboot ne peut pas lire le fichier après l'avoir empaqueté dans un package jar. La raison en est qu'après l'empaquetage, le chemin virtuel du fichier. n’est pas valide et n’est accessible que via le flux Read. Le fichier se trouve sous les ressources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

SpringBoot et SpringMVC sont tous deux des frameworks couramment utilisés dans le développement Java, mais il existe des différences évidentes entre eux. Cet article explorera les fonctionnalités et les utilisations de ces deux frameworks et comparera leurs différences. Tout d’abord, découvrons SpringBoot. SpringBoot a été développé par l'équipe Pivotal pour simplifier la création et le déploiement d'applications basées sur le framework Spring. Il fournit un moyen rapide et léger de créer des fichiers exécutables autonomes.

Lorsque Springboot+Mybatis-plus n'utilise pas d'instructions SQL pour effectuer des opérations d'ajout de plusieurs tables, les problèmes que j'ai rencontrés sont décomposés en simulant la réflexion dans l'environnement de test : Créez un objet BrandDTO avec des paramètres pour simuler le passage des paramètres en arrière-plan. qu'il est extrêmement difficile d'effectuer des opérations multi-tables dans Mybatis-plus. Si vous n'utilisez pas d'outils tels que Mybatis-plus-join, vous pouvez uniquement configurer le fichier Mapper.xml correspondant et configurer le ResultMap malodorant et long, puis. écrivez l'instruction SQL correspondante Bien que cette méthode semble lourde, elle est très flexible et nous permet de

1. Personnalisez RedisTemplate1.1, mécanisme de sérialisation par défaut RedisAPI. L'implémentation du cache Redis basée sur l'API utilise le modèle RedisTemplate pour les opérations de mise en cache des données. Ici, ouvrez la classe RedisTemplate et affichez les informations sur le code source de la classe. Déclarer la clé, diverses méthodes de sérialisation de la valeur, la valeur initiale est vide @NullableprivateRedisSe

Avec l’essor du cloud computing et des microservices, la complexité des applications a augmenté. Par conséquent, la surveillance et le diagnostic deviennent l’une des tâches de développement importantes. À cet égard, Prometheus et Grafana sont deux outils open source populaires de surveillance et de visualisation qui peuvent aider les développeurs à mieux surveiller et analyser les applications. Cet article explorera comment utiliser Prometheus et Grafana pour implémenter la surveillance et les alarmes dans le framework Beego. 1. Introduction Beego est une application web open source à développement rapide.
