010
Метрики для prometheus
011
012
Платформа генерирует метрики для Prometheus
013
014
Точка доступа к метрикам
015
016
Приложение платформы использует Spring-boot, в котором из
017 коробки предоставляются метрики для Prometheus.
018
019
Для доступа к этим метрикам нужно использовать URL:
020
021
022 http://HOST:PORT/actuator/prometheus
023
024
025
026
027
028
Где HOST:PORT - хост и порт серверной части платформы - она
029 называется MyBPM API
030
031
Если используется kubernetes, и в нём установлен
032 prometheus-operator, то для доступа к метрикам платформы MyBPM
033 необходимо настроить ServiceMonitor:
034
035
036 apiVersion: monitoring.coreos.com/v1
037 kind: ServiceMonitor
038 metadata:
039 name: mybpm-api-monitor
040 namespace: monitoring
041 labels:
042 release: prometheus
043 spec:
044 selector:
045 matchLabels:
046 app-group: mybpm-server
047 namespaceSelector:
048 matchNames:
049 - perf-test
050 endpoints:
051 - targetPort: 8080
052 scheme: http
053 path: /actuator/prometheus
054 interval: 1s
055
056
057
058
В этом yaml-файле необходимо поменять некоторые параметры,
059 которые соответствуют Вашей установке. А именно:
060
061
062
063
064 | параметр |
065 описание |
066
067
068
069
070
071 | metadata.namespace |
072 здесь нужно указать ваш namespace, который Вы используете для
073 мониторинга |
074
075
076
077 | spec.selector.matchLabels |
078 здесь нужно указать фильтр для приложения платформы MyBPM,
079 который у Вас настроен |
080
081
082
083 | spec.selector.matchLabels |
084 здесь нужно указать правильный namespace, где находиться
085 платформа |
086
087
088
089
090
Остальные параметры можно оставить без изменений.
091
092
Описание метрик
093
094
095 application_started_time_seconds
096
097
098
099
100
101
Указывает время старта приложения
102
103
104
105 mybpm_go_process_threads_fast_count - Count of threads going fast processes
106 mybpm_go_process_threads_slow_count - Count of threads going slow processes
107 mybpm_go_process_threads_fast_limit - Limit of threads going fast processes - config RunProcessConfig.poolSizeFast
108 mybpm_go_process_threads_slow_limit - Limit of threads going slow processes - config RunProcessConfig.poolSizeSlow
109
110
111
112
113
114
Эти метрики показывают состояние механизма исполнения
115 процессов
116
117
118
119 http_server_requests_seconds_count
120 http_server_requests_seconds_sum
121
122
123
124
125
126
По каждому сервису в системе показываются такие метрики.
127
128
*_count - указывает количество запусков этого сервиса
129
130
*_sum - указывает суммарное время работы этого
131 сервиса
132
133
Обе эти метрики растут, поэтому нужно использовать производные
134 по ним, чтобы определить количество запросов в секунду, и время
135 работы тех или иных запросов.
136
137
138
139 mybpm_controller_calls_seconds_count
140 mybpm_controller_calls_seconds_sum
141
142
143
144
145
146
По каждому методу в каждом контроллере на платформе формируется
147 две метрики описывающие количественную работу этих методов.
148
149
*_count - указывает количество запусков этого метода
150 контроллера
151
152
*_sum - указывает суммарное время работы этого метода в
153 секундах
154
155
Контроллер - это класс в Java предназначенный для обработки
156 REST-сервисов. В нём есть методы, которы определённым образом
157 помечены, и они исполняют конкретные запросы по сервисам.
158
159
160
161 mongodb_driver_pool_size
162
163
164
165
166
167
Указывает текущий размер пула соединений к MongoDB. Этот
168 параметр позволяет отслеживать нагрузку на MongoDB.
169
170
171
172 logback_events_total{application="mybpm",level="info",} 4317071.0
173 logback_events_total{application="mybpm",level="debug",} 5.7446569E7
174 logback_events_total{application="mybpm",level="error",} 308.0
175 logback_events_total{application="mybpm",level="warn",} 4.0
176 logback_events_total{application="mybpm",level="trace",} 1.0376059E8
177
178
179
180
181
182
Показывают активность системы журналирования (логов).
183
184
185
186 jvm_memory_used_bytes{application="mybpm",area="heap",id="G1 Eden Space",} 1.74063616E8
187 jvm_memory_used_bytes{application="mybpm",area="nonheap",id="Metaspace",} 1.52550256E8
188 jvm_memory_used_bytes{application="mybpm",area="heap",id="G1 Survivor Space",} 1848448.0
189 jvm_memory_used_bytes{application="mybpm",area="nonheap",id="Compressed Class Space",} 1.8272688E7
190 jvm_memory_used_bytes{application="mybpm",area="heap",id="G1 Old Gen",} 1.65742592E8
191 jvm_memory_used_bytes{application="mybpm",area="nonheap",id="CodeCache",} 4.4950016E7
192 jvm_memory_committed_bytes{application="mybpm",area="heap",id="G1 Eden Space",} 4.1418752E8
193 jvm_memory_committed_bytes{application="mybpm",area="nonheap",id="Metaspace",} 1.54271744E8
194 jvm_memory_committed_bytes{application="mybpm",area="heap",id="G1 Survivor Space",} 2097152.0
195 jvm_memory_committed_bytes{application="mybpm",area="nonheap",id="Compressed Class Space",} 1.9202048E7
196 jvm_memory_committed_bytes{application="mybpm",area="heap",id="G1 Old Gen",} 2.44318208E8
197 jvm_memory_committed_bytes{application="mybpm",area="nonheap",id="CodeCache",} 5.9834368E7
198
199
200
201
202
203
Показывают количество используемой на данный момент памяти со
204 стороны JVM.
205
206
207
208 process_files_open_files{application="mybpm",} 620.0
209
210
211
212
213
214
Количество открытых дескрипторов файлов на данный момент со
215 стороны JVM.
216
217
218
219 process_cpu_usage{application="mybpm",} 0.07142857142857142
220
221
222
223
224
225
Показывает количество используемого времени платформой у
226 процессора.
227
228
229
at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:80)
at kz.greetgo.md_reader.core.MdConverter.prepareHtmlFileFrom(MdConverter.java:136)
at kz.greetgo.md_reader.core.MdConverter.convert(MdConverter.java:208)
at kz.greetgo.md_reader.controller.RenderController.downloadToc(RenderController.java:360)
at kz.greetgo.md_reader.controller.RenderController.request(RenderController.java:108)
at jdk.internal.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at kz.greetgo.md_reader.interceptors.TextReplaceFilter.doFilter(TextReplaceFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1397)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1333)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.startPE(XMLDTDScannerImpl.java:732)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2101)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2064)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTDScannerImpl.java:299)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1165)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:943)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:71)
... 48 more