java.lang.RuntimeException: wXb6Vnl31u :: Ошибка для HTML= 001 003 004 005 006 007 008 009
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 072 074 075 076 077 078 080 081 082 083 084 086 087 088
параметрописание
metadata.namespaceздесь нужно указать ваш namespace, который Вы используете для 073 мониторинга
spec.selector.matchLabelsздесь нужно указать фильтр для приложения платформы MyBPM, 079 который у Вас настроен
spec.selector.matchLabelsздесь нужно указать правильный namespace, где находиться 085 платформа
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