如何使用Grafana / Premetheus监视我的Spring Boot应用程序的JDBC调用(Oracle / MySql / Postgre等)统计信息?
具体来说,我正在寻找统计信息,例如
答案 0 :(得分:1)
您可以尝试使用micrometer。这是Spring Boot的指标提供程序。我目前正在研究同一件事情,但我还不完全了解人们可以使用千分尺的所有方式。因此,希望以下信息对您有用。
有多种方法可以将Spring Boot应用程序端点公开给Prometheus,然后可以链接grafana以使用Prometheus。请查看此link,以获取有关操作方法的示例
默认情况下,千分尺将包括JvmMemoryMetrics,UptimeMetrics等。但是,您可以通过将其添加为bean,在应用程序中使用以下软件包中提供的 binders 。
io.micrometer.core.instrument.binder
例如(用Kotlin编写的代码)
import io.micrometer.core.instrument.binder.db.PostgreSQLDatabaseMetrics
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import javax.sql.DataSource
/**
* Class to configure binders for micrometer metrics for this application
*/
@Configuration
open class MetricsConfiguration(private val dataSource: DataSource) {
@Bean
open fun jvmMemoryMetrics(): ClassLoaderMetrics {
return ClassLoaderMetrics()
}
@Bean
open fun dbMetrics(): PostgreSQLDatabaseMetrics {
return PostgreSQLDatabaseMetrics(dataSource, "database-name")
}
}
如果需要,您还可以编写自定义的资料夹和指标。有关更多信息,请参见micrometer docs。
答案 1 :(得分:0)
导出器有助于将主机的度量标准公开给端点。
端点可以是import sys
try: from pip._internal import main
except: from pip import main
def install(package, version):
## required syntax for these windows due to some security options
installTrusted = ['install','--trusted-host=pypi.python.org','--trusted-host=files.pythonhosted.org','--trusted-host=pypi.org']
## add package to syntax
installTrusted.extend(package)
try:
## install package
main(installTrusted)
except Exception as e:
## let the user know which module could not be downloaded
print(e)
if version==3:
input('could not import ' + package[0])
else:
raw_input('could not import ' + package[0])
if __name__ == "__main__":
## check which version of python is being used
pythonVersion = sys.version_info[0]
## install packages
install(['pip','--upgrade'], pythonVersion)
install(['setuptools', '--upgrade'],pythonVersion)
install(['pandas'], pythonVersion)
install(['numpy'], pythonVersion)
## ---------------------------------------------------------
## this the section displayed on picture of error message
if pythonVersion == 3:
input('installing matplotlib')
else:
raw_input('installing matplotlib')
install(['matplotlib'], pythonVersion)
if pythonVersion == 3:
input('done installing')
else:
raw_input('done installing')
## --------------------------------------------------------
install(['python-docx'], pythonVersion)
install(['python-dateutil'], pythonVersion)
install(['pathlib'], pythonVersion)
install(['statsmodels'], pythonVersion)
install(['scipy'], pythonVersion)
install(['tqdm'], pythonVersion)
install(['pillow'],pythonVersion)
install(['python-resize-image'],pythonVersion)
install(['shutil'],pythonVersion)
install(['textwrap'],pythonVersion)
或/metrics
您需要配置/prometheus
才能从终结点计算机抓取指标
Prometheus官方文档中有出口商列表
https://prometheus.io/docs/instrumenting/exporters/
您可以找到Oracle,MySql和PostGres的导出器。
您需要在数据库计算机上安装此导出器,以获得特定于数据库的指标。
对于与Spring Boot应用程序相关的指标,例如“对数据库的查询数”,您可以使用Micrometer为Spring boot 2.x编写自定义指标