最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot2.X整合prometheus監(jiān)控的實例講解

 更新時間:2021年03月02日 12:01:01   作者:徹骨寒風  
這篇文章主要介紹了springboot2.X整合prometheus監(jiān)控的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

springboot2.x暴露健康狀況通過prometheus監(jiān)控

加入依賴

 <!--prometheus監(jiān)控 https://prometheus.io/docs/introduction/overview/-->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-actuator</artifactId>
 </dependency>
 <dependency>
 <groupId>io.micrometer</groupId>
 <artifactId>micrometer-registry-prometheus</artifactId>
 </dependency>
 <!--prometheus監(jiān)控 https://prometheus.io/docs/introduction/overview/-->

application.yml加入相關配置

management:
 security:
 enabled: false
 #prometheus+grafana+springboot2監(jiān)控集成配置
 metrics:
 export:
 prometheus:
 enabled: true
 jmx:
 enabled: true
 endpoints:
 web:
 exposure:
 include: '*'
 base-path: /metrics
 #prometheus+grafana+springboot2監(jiān)控集成配置

主啟動類加入配置

package com.drore.saas;
import com.drore.saas.services.service.StorageService;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
@ServletComponentScan
public class TenantappApplication {
 public static void main(String[] args) {
 SpringApplication.run(TenantappApplication.class, args);
 }
 @Bean
 CommandLineRunner init(StorageService storageService) {
 return (args) -> {
 storageService.init();
 };
 }
#prometheus+grafana+springboot2監(jiān)控集成配置
 @Bean
 MeterRegistryCustomizer meterRegistryCustomizer(MeterRegistry meterRegistry) {
 return meterRegistry1 -> {
 meterRegistry.config()
 .commonTags("application", "Tenantapp");
 };
 }
 #prometheus+grafana+springboot2監(jiān)控集成配置
}

啟動之后通過路徑訪問查看健康狀況

http://xxxxxx/metrics/prometheus

查看到的數(shù)據(jù)如下:

[root@saas98 /]$ curl "http://10.98.94.220:80/ts/metrics/prometheus"
# HELP process_start_time_seconds Start time of the process since unix epoch.
# TYPE process_start_time_seconds gauge
process_start_time_seconds{application="Tenantapp",} 1.556068841226E9
# HELP tomcat_threads_busy_threads 
# TYPE tomcat_threads_busy_threads gauge
tomcat_threads_busy_threads{application="Tenantapp",name="http-nio-9081",} 1.0
# HELP tomcat_sessions_expired_sessions_total 
# TYPE tomcat_sessions_expired_sessions_total counter
tomcat_sessions_expired_sessions_total{application="Tenantapp",} 0.0
# HELP tomcat_sessions_active_current_sessions 
# TYPE tomcat_sessions_active_current_sessions gauge
tomcat_sessions_active_current_sessions{application="Tenantapp",} 0.0
# HELP jvm_gc_memory_promoted_bytes_total Count of positive increases in the size of the old generation memory pool before GC to after GC
# TYPE jvm_gc_memory_promoted_bytes_total counter
jvm_gc_memory_promoted_bytes_total{application="Tenantapp",} 1.18894656E8
# HELP tomcat_global_request_max_seconds 
# TYPE tomcat_global_request_max_seconds gauge
tomcat_global_request_max_seconds{application="Tenantapp",name="http-nio-9081",} 3.366
# HELP jvm_memory_used_bytes The amount of used memory
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{application="Tenantapp",area="heap",id="Survivor Space",} 653880.0
jvm_memory_used_bytes{application="Tenantapp",area="nonheap",id="Metaspace",} 1.36445248E8
jvm_memory_used_bytes{application="Tenantapp",area="heap",id="Eden Space",} 7511504.0
jvm_memory_used_bytes{application="Tenantapp",area="nonheap",id="Code Cache",} 3.8031424E7
jvm_memory_used_bytes{application="Tenantapp",area="heap",id="Tenured Gen",} 1.3880212E8
jvm_memory_used_bytes{application="Tenantapp",area="nonheap",id="Compressed Class Space",} 1.7220968E7
# HELP tomcat_sessions_created_sessions_total 
# TYPE tomcat_sessions_created_sessions_total counter
tomcat_sessions_created_sessions_total{application="Tenantapp",} 0.0
# HELP system_cpu_count The number of processors available to the Java virtual machine
# TYPE system_cpu_count gauge
system_cpu_count{application="Tenantapp",} 1.0
# HELP tomcat_global_sent_bytes_total 
# TYPE tomcat_global_sent_bytes_total counter
tomcat_global_sent_bytes_total{application="Tenantapp",name="http-nio-9081",} 8168269.0
# HELP jvm_threads_daemon_threads The current number of live daemon threads
# TYPE jvm_threads_daemon_threads gauge
jvm_threads_daemon_threads{application="Tenantapp",} 34.0
# HELP logback_events_total Number of error level events that made it to the logs
# TYPE logback_events_total counter
logback_events_total{application="Tenantapp",level="debug",} 0.0
logback_events_total{application="Tenantapp",level="error",} 965.0
logback_events_total{application="Tenantapp",level="warn",} 4.0
logback_events_total{application="Tenantapp",level="info",} 1047.0
logback_events_total{application="Tenantapp",level="trace",} 0.0
# HELP tomcat_cache_access_total 
# TYPE tomcat_cache_access_total counter
tomcat_cache_access_total{application="Tenantapp",} 0.0
# HELP tomcat_servlet_error_total 
# TYPE tomcat_servlet_error_total counter
tomcat_servlet_error_total{application="Tenantapp",name="dispatcherServlet",} 0.0
tomcat_servlet_error_total{application="Tenantapp",name="statViewServlet",} 0.0
tomcat_servlet_error_total{application="Tenantapp",name="default",} 0.0
# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the buffers in this pool

prometheus-operator監(jiān)控java應用整合

目前的prometheus-operator目錄下的相關文件

https://github.com/coreos/prometheus-operator.git

已經(jīng)移植到

https://github.com/coreos/kube-prometheus.git

具體原因參照官網(wǎng)。

下面也有自己總結(jié)的文檔的地址,大家可以參照下:

https://github.com/hkj123/kube-prometheus-manifests.git

具體的文件如下圖展示,這里有很多文件,我們只介紹關注的幾個文件,其他的可以參照官網(wǎng)了解:

構建springboot項目的時候需要注意的點:

---
kind: Service
apiVersion: v1
metadata:
 labels:
 app: ms #prometheus配置監(jiān)控需要通過app去監(jiān)控,這個k8s-app和app都可以
 namespace: drore-saas
 name: ms
spec:
 ports:
 - name: http-ms #prometheus配置監(jiān)控需要通過port name去識別,當然也可以直接配置端口,不過這樣看起來更專業(yè)
 nodePort: 31945
 protocol: TCP
 port: 80
 targetPort: 80
 selector:
 app: ms
 type: NodePort
---

部署prometheus需要注意的點

https://github.com/coreos/kube-prometheus/manifests

提供了一套整合的例子:

需要修改的文件: prometheus-clusterRole.yaml

默認的文件內(nèi)容:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
 name: prometheus-k8s
rules:
- apiGroups:
 - ""
 resources:
 - nodes/metrics
 verbs:
 - get
- nonResourceURLs:
 - /metrics
 verbs:
 - get

可以發(fā)現(xiàn)這里的監(jiān)控的resources:- nodes/metrics

我們需要監(jiān)控自己構建的java應用需要擴大權限

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
 name: prometheus-k8s
rules:
- apiGroups:
 - ""
 resources:
 - nodes
 - services
 - endpoints
 - pods
 - nodes/proxy
 verbs:
 - get
 - list
 - watch
- apiGroups:
 - ""
 resources:
 - configmaps
 - nodes/metrics
 verbs:
 - get
- nonResourceURLs:
 - /metrics
 verbs:
 - get

書寫monitor監(jiān)控文件,提供了一下參考的文件:prometheus-serviceMonitor.yaml

自己編寫的 :prometheus-serviceMonitorSelfServiceMs.yaml

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
 name: drore-saas-ms
 namespace: monitoring
spec:
 endpoints:
 - interval: 15s
 port: http-ms #prometheus配置注意這個port的名稱
 path: /ms/metrics/prometheus #prometheus配置注意這個路徑 
 jobLabel: app #prometheus配置注意我們用的是app在springboot構建的時候
 namespaceSelector: # 表示去匹配某一命名空間中的service,如果想從所有的namespace中匹配用any: true
 matchNames:
 - drore-saas
 selector:
 matchLabels:
 app: ms #prometheus配置注意我們用的是app在springboot構建的時候

配置完畢之后使用

kubectl apply -f prometheus-clusterRole.yaml -f prometheus-serviceMonitorSelfServiceMs.yaml

就可以登錄管理界面去看了

http://118.31.17.205:31144/targets

報警規(guī)則可以通過 prometheus-rules.yaml 去配置

參考

https://github.com/coreos/prometheus-operator

補充:spring boot2.x暴露監(jiān)控endpoint并配置prometheus及grafana對多個targets進行監(jiān)控

1. build.gradle中添加依賴

compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator' 
compile group: 'org.springframework.boot', name: 'spring-boot-starter-security' 
compile('io.micrometer:micrometer-registry-prometheus')

2. spring boot 2.x暴露信息

不同于之前的Actuator 1.x,Actuator 2.x 的大多數(shù)端點默認被禁掉。 Actuator 2.x 中的默認端點增加了/actuator前綴。

3. spring boot服務端改造

配置信息

server.port=8085
management.endpoints.web.exposure.include=prometheus 
management.endpoint.metrics.enabled=true 
spring.security.user.name=xxx 
spring.security.user.password=123456 
spring.security.user.roles=ACTUATOR_ADMIN 
management.server.port=8090 
management.endpoints.web.base-path=/admin

指定權限

@Configuration 
public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter { 
 @Override 
 protected void configure(HttpSecurity http) throws Exception { 
 http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests().antMatchers("/actuator/*").hasRole( 
 "ACTUATOR_ADMIN").and().httpBasic(); 
 } 
}

這樣我們可以看到:

這個spring boot服務啟動了兩個端口:

8085端口,進行正常的業(yè)務處理

8090端口,admin,暴露出監(jiān)控信息,并通過spring security進行權限控制

打開瀏覽器訪問http://192.168.211.2:8090/admin/prometheus

輸入用戶名 密碼

4. Prometheus監(jiān)控多個spring boot服務

下載prometheus-2.11.1.linux-amd64.tar.gz

編寫配置文件prometheus.yml

global:
 scrape_interval: 10s
 scrape_timeout: 10s
 evaluation_interval: 10m
scrape_configs:
 - job_name: app-gateway
 scrape_interval: 5s
 scrape_timeout: 5s
 metrics_path: /admin/prometheus
 scheme: http
 basic_auth:
 username: root
 password: 1230456
 static_configs:
 - targets:
 - 192.168.211.2:8099
 - job_name: search
 scrape_interval: 5s
 scrape_timeout: 5s
 metrics_path: /admin/prometheus
 scheme: http
 basic_auth:
 username: root
 password: 1230456
 static_configs:
 - targets:
 - 192.168.211.2:8090

其中,我的spring boot服務部署在192.168.211.2上,而prometheus和grafana都部署在192.168.211.101上

配置了兩個服務

執(zhí)行以下命令啟動 ./prometheus --config.file=prometheus.yml &

訪問http://192.168.211.101:9090/targets

可以看到

5. grafana可視化監(jiān)控多個prometheus targets

下載grafana-6.2.5.linux-amd64.tar.gz

啟動grafana

./grafana-server &

http://192.168.211.101:3000

在dashboard中配置時,要采用這樣的方式

jvm_gc_pause_seconds_count{action="end of minor GC",cause="Metadata GC Threshold",instance="192.168.211.2:8090",job="search"}

通過instance和job來進行區(qū)分prometheus的targets

可以看到dashboard中有兩個prometheus的targets

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • MyBatisPlus分頁時排序的實現(xiàn)

    MyBatisPlus分頁時排序的實現(xiàn)

    本文主要介紹了MyBatisPlus分頁時排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Mybatis-Plus可能導致死鎖的問題分析及解決辦法

    Mybatis-Plus可能導致死鎖的問題分析及解決辦法

    這篇文章給大家主要介紹了Mybatis-Plus可能導致死鎖的問題分析及解決辦法,文中通過代碼示例給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • Spring Boot應用程序同時支持HTTP和HTTPS協(xié)議的實現(xiàn)方法

    Spring Boot應用程序同時支持HTTP和HTTPS協(xié)議的實現(xiàn)方法

    如今,企業(yè)級應用程序的常見場景是同時支持HTTP和HTTPS兩種協(xié)議,這篇文章考慮如何讓Spring Boot應用程序同時支持HTTP和HTTPS兩種協(xié)議,需要的朋友可以參考下
    2019-10-10
  • 使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    大家都知道在一些情況下,我們需要特殊的編碼格式,如:UTF-8,但是系統(tǒng)默認的編碼為ISO-8859-1,遇到這個問題,該如何對字符串進行兩個編碼的轉(zhuǎn)換呢,下面小編給大家分享下java中如何在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換,感興趣的朋友一起看看吧
    2021-12-12
  • Jackson優(yōu)雅序列化Java枚舉類過程解析

    Jackson優(yōu)雅序列化Java枚舉類過程解析

    這篇文章主要介紹了Jackson優(yōu)雅序列化Java枚舉類過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 如何完成spring的最小化XML配置

    如何完成spring的最小化XML配置

    這篇文章主要介紹了如何完成spring的最小化XML配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • Java中Executor和Executors的區(qū)別小結(jié)

    Java中Executor和Executors的區(qū)別小結(jié)

    在Java并發(fā)編程中,Executor是一個核心接口,提供了任務執(zhí)行的抽象方法,而Executors是一個工具類,提供了創(chuàng)建各種線程池的工廠方法,Executor關注任務的執(zhí)行,而Executors關注如何創(chuàng)建適合的執(zhí)行器,感興趣的可以了解一下
    2024-10-10
  • springboot+mybatis配置clickhouse實現(xiàn)插入查詢功能

    springboot+mybatis配置clickhouse實現(xiàn)插入查詢功能

    這篇文章主要介紹了springboot+mybatis配置clickhouse實現(xiàn)插入查詢功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 教你實現(xiàn)Java接口防刷

    教你實現(xiàn)Java接口防刷

    有些人會惡意提交,本文主要介紹了教你實現(xiàn)Java接口防刷,通過在一定時間內(nèi)限制同一用戶對同一個接口的請求次數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • 解決java -jar XXX.jar沒有主清單屬性以及找不到或無法加載主類的問題

    解決java -jar XXX.jar沒有主清單屬性以及找不到或無法加載主類的問題

    在使用Idea打包SpringBoot項目時,可能會遇到“沒有主清單屬性”的錯誤,問題原因是pom文件中缺少配置,未能正確打包成可執(zhí)行的jar,解決方法包括:1. 修改項目結(jié)構并重新生成jar;2. 使用Maven插件在pom文件中添加spring-boot-maven-plugin配置
    2024-09-09

最新評論

乌兰县| 淅川县| 比如县| 堆龙德庆县| 广东省| 淮安市| 渝北区| 阜阳市| 郯城县| 新津县| 永靖县| 长子县| 成安县| 思茅市| 城口县| 密云县| 武宁县| 鄂尔多斯市| 措美县| 锡林浩特市| 合作市| 汉中市| 湟中县| 沙坪坝区| 蓬莱市| 寿光市| 云浮市| 腾冲县| 秦皇岛市| 大荔县| 镇江市| 东乌| 舟曲县| 榆树市| 麻栗坡县| 图木舒克市| 腾冲县| 秀山| 阿拉善左旗| 昌吉市| 南投县|