我正在寻找一种将Spring Boot 2中的Spring Boot指标导出到文件的方法。
在Spring Boot 1.5.10中,我们使用了一个自定义MetricsExporter类,该类实现MetricWriter并重写set和increment方法,以使用记录器写入度量。我们使用了一个日志文件,因为我们有一种不同的机制来稍后处理日志文件以进行度量分析。
我们还使用了MetricsConfig类,它使用bean MetricsEndpointMetricReader从定制配置类中的metricsendpoint读取器读取度量。
但是,当我们升级到Spring Boot 2.0.1时,这些都不起作用,因为现有的度量类发生了突破性的变化。
有人能帮助我们在使用Spring Boot 2.0时如何导出度量并使用记录器编写度量吗?
@ExportMetricWriter
public class MetricsExporter implements MetricWriter {
private static Logger LOGGER = LoggerFactory.getLogger("metrics");
@Override
public void set(Metric<?> value) {
// Write the Gauge metrics to log file
LOGGER.info("timestamp={}, name={}, value={}", value.getTimestamp(), value.getName(),value.getValue());
}
@Override
public void increment(Delta<?> delta) {
//Write the Counter metrics to log file
LOGGER.info("timestamp={}, name={}, value={}", delta.getTimestamp(), delta.getName(),delta.getValue());
}
@Override
public void reset(String metricName) {
}
}
MetricsConfig类如下所示:
@Configuration
public class MetricsConfig {
//Define the MetricsExporter bean to export metrics at regular interval to a log file
@Bean
public MetricsExporter metricsExporter() {
return new MetricsExporter();
}
//Define the MetricsEndpointMetricReader bean to export both push(counters and gauges) and pull(public) metrics
@Bean
public MetricsEndpointMetricReader metricsEndpointMetricReader(MetricsEndpoint metricsEndpoint) {
return new MetricsEndpointMetricReader(metricsEndpoint);
}
}
如果您使用的是Spring Boot 2。x表示千分尺的版本
@Bean
LoggingMeterRegistry loggingMeterRegistry() {
return new LoggingMeterRegistry();//by default, it will log metrics every 1m
}
您还可以配置不同的时段周期,如:
@Bean
LoggingMeterRegistry loggingMeterRegistry() {
return new LoggingMeterRegistry(new LoggingRegistryConfig() {
@Override
public Duration step() {
return Duration.ofSeconds(10); // log every 10 seconds
}
@Override
public String get(String key) {
return null;
}
}, Clock.SYSTEM);
}
如果您没有使用足够高的Spring Boot版本,请尝试声明1.1版本。在测微计的x中,取pom的芯。xml
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>1.1.3</version>
</dependency>
您可以实现一个自定义的计量注册表,并将其连接为一个Bean。MeterRegistry实现的一个作用是定义特定监控系统的显示格式(在您的情况下是日志)。
这是一个开始:
public class LogMeterRegistry extends StepMeterRegistry {
private final Logger logger = LoggerFactory.getLogger(LogMeterRegistry.class);
/**
* @param step Governs on what frequency metrics are logged
*/
public LogMeterRegistry(Duration step) {
super(new StepRegistryConfig() {
@Override
public String prefix() {
return "log";
}
@Override
public String get(String key) {
return null;
}
@Override
public Duration step() {
return step;
}
}, Clock.SYSTEM);
}
@Override
protected void publish() {
for (Meter meter : getMeters()) {
logger.info(meter.getId().toString());
for (Measurement measurement : meter.measure()) {
logger.info(measurement.getStatistic().toString() + "=" + measurement.getValue());
}
}
}
@Override
protected TimeUnit getBaseTimeUnit() {
return TimeUnit.SECONDS;
}
}
Microeter 1.1存在提供开箱即用的LogMeter注册表
的问题。
我有php文件模板,我需要填充一些数据并导出为“rendered_view.php”。它需要每天自动完成。所以我正在尝试使用Laravel Scheduler。 所以我有: 查看“view_to_render.blade.php” 控制器"MiscController.php" 路线 控制台/内核。php 场景1:如果我导航到127.0.0.1:8000/testRenderView,它就可以工作
问题内容: 我有SSIS包,可以将数据从表导出到Excel文件 这是我的步骤: 删除Excel表 创建具有我选择查询格式的Excel表格,该表格用于从数据库中检索数据 将数据从数据库插入Excel文件 我用过像查询 我从10000行中检索出3000行,并将这3000行放入我的Excel工作表中。 但是,当打开我的Excel工作表时,我看到滚动条一直延伸到第10000行并结束,因此我的Excel工作
问题内容: 我需要使用Python脚本将PostgreSQL数据库中的表中的某些行导出到.csv文件: 但是当我运行脚本时,我得到了: 有谁知道可能出什么问题或给我小费吗? 问题答案: 该命令不是SQL命令,它是Postgres终端客户端 psql 专用的命令,不能在此上下文中使用。 使用代替,例如:
我正在尝试将JTable导出到Microsoft Excel可用的文件中。 最初,我将数据写入一个文本文件,并将扩展名设置为“.xls” 我们非常感谢任何帮助和洞察力。可能还值得一提的是,tables模型是一个自定义模型。
我有一个JProfiler快照文件(.jps),它是使用脱机分析创建的。 当我试图使用JPexport脚本导出它时,出现以下错误: /opt/jprofiler9/bin$jpexport ~/test。jps热点~/热点。html加载/home/pavan/test。jps JProfiler尚未初始化。请先运行JProfiler可执行文件 请任何人详细说明这意味着什么,以及需要做什么才能成功地