This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new 622a48e JAV-559 Removed the log4j dependency (#459)
622a48e is described below
commit 622a48e4758f48d3f8526926f9459a933d45670c
Author: zhengyangyong <[email protected]>
AuthorDate: Fri Dec 22 20:17:01 2017 +0800
JAV-559 Removed the log4j dependency (#459)
* Signed-off-by: zhengyangyong <[email protected]>
(cherry picked from commit 26667d42d4077a3e2270e80731942ebd54be0b1d)
Apply 0.5.x metrics patch to 0.6.0-SNAPSHOT
---
.../output/servo/RollingMetricsFileOutput.java | 34 +--
.../servo/SimpleMetricsContentFormatter.java | 2 -
samples/bmi/calculator/pom.xml | 10 +-
.../bmi/calculator/src/main/resources/log4j2.xml | 227 +++++++++++++++++++++
.../src/main/resources/microservice.yaml | 7 +-
5 files changed, 243 insertions(+), 37 deletions(-)
diff --git
a/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/RollingMetricsFileOutput.java
b/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/RollingMetricsFileOutput.java
index cb2fc18..2e63439 100644
---
a/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/RollingMetricsFileOutput.java
+++
b/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/RollingMetricsFileOutput.java
@@ -17,48 +17,28 @@
package io.servicecomb.foundation.metrics.output.servo;
-import java.nio.file.Paths;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PatternLayout;
-import org.apache.log4j.spi.LoggingEvent;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
-import io.servicecomb.foundation.common.utils.RollingFileAppenderExt;
import io.servicecomb.foundation.metrics.output.MetricsFileOutput;
@Component
public class RollingMetricsFileOutput extends MetricsFileOutput {
- private final Map<String, RollingFileAppenderExt> metricsAppenders = new
HashMap<>();
- @Autowired
+ private final Map<String, Logger> allLoggers = new ConcurrentHashMap<>();
+
public RollingMetricsFileOutput() {
}
@Override
public void output(Map<String, String> metrics) {
for (String metricName : metrics.keySet()) {
- final String fileName = String.join(".", getNamePrefix(), metricName,
"dat");
- RollingFileAppenderExt appender =
metricsAppenders.computeIfAbsent(metricName, (key) -> {
- String finalPath = Paths.get(getRollingRootFilePath(),
fileName).toString();
- RollingFileAppenderExt fileAppender = new RollingFileAppenderExt();
- fileAppender.setLogPermission("rw-------");
- fileAppender.setFile(finalPath);
- fileAppender.setLayout(new PatternLayout("%m%n"));
- fileAppender.setAppend(true);
- fileAppender.setMaxFileSize(getMaxRollingFileSize());
- fileAppender.setMaxBackupIndex(getMaxRollingFileCount());
- fileAppender.activateOptions();
- return fileAppender;
- });
-
- LoggingEvent event = new LoggingEvent(fileName,
Logger.getLogger(fileName), Level.ALL,
- metrics.get(metricName), null);
- appender.append(event);
+ Logger logger = allLoggers.computeIfAbsent(metricName, l ->
LoggerFactory.getLogger(metricName));
+ logger.error(metrics.get(metricName));
}
}
}
diff --git
a/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/SimpleMetricsContentFormatter.java
b/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/SimpleMetricsContentFormatter.java
index 11d816e..8c4e60a 100644
---
a/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/SimpleMetricsContentFormatter.java
+++
b/foundations/foundation-metrics/src/main/java/io/servicecomb/foundation/metrics/output/servo/SimpleMetricsContentFormatter.java
@@ -24,7 +24,6 @@ import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
@@ -45,7 +44,6 @@ public class SimpleMetricsContentFormatter implements
MetricsContentFormatter {
private String hostName;
- @Autowired
public SimpleMetricsContentFormatter() {
hostName = NetUtils.getHostName();
if (StringUtils.isEmpty(hostName)) {
diff --git a/samples/bmi/calculator/pom.xml b/samples/bmi/calculator/pom.xml
index cd70aa1..ffd84f1 100644
--- a/samples/bmi/calculator/pom.xml
+++ b/samples/bmi/calculator/pom.xml
@@ -32,15 +32,19 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
-
<!--Metric使用log4j输出,屏蔽掉spring-boot-starter中的log4j-over-slf4j,因为log4j-over-slf4j没有实现完整的RollingFileAppender-->
<exclusions>
<exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-log4j2</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>io.servicecomb</groupId>
<artifactId>spring-boot-starter-provider</artifactId>
</dependency>
diff --git a/samples/bmi/calculator/src/main/resources/log4j2.xml
b/samples/bmi/calculator/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..ac1f2a7
--- /dev/null
+++ b/samples/bmi/calculator/src/main/resources/log4j2.xml
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<configuration status="error" monitorInterval="300">
+ <Properties>
+ <!--metrics文件Rolling单文件最大大小(KB,MB,GB)-->
+ <Property name="maxFileSize">10MB</Property>
+ <!--metrics文件Rolling保存数量-->
+ <Property name="maxFileCount">10</Property>
+ <!--metrics文件存储目录-->
+ <Property
name="filePath">./samples/bmi/calculator/target/metric/</Property>
+ <!--metrics文件名前缀-->
+ <Property name="filePrefix">bmi.calculator</Property>
+ </Properties>
+
+ <Appenders>
+ <RollingFile name="averageServiceExecutionTime"
fileName="${filePath}${filePrefix}.averageServiceExecutionTime.dat"
+
filePattern="${filePath}${filePrefix}.averageServiceExecutionTime-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="averageTimeInQueue"
fileName="${filePath}${filePrefix}.averageTimeInQueue.dat"
+ filePattern="${filePath}${filePrefix}.averageTimeInQueue-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="countInQueue"
fileName="${filePath}${filePrefix}.countInQueue.dat"
+ filePattern="${filePath}${filePrefix}.countInQueue-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="cpuLoad" fileName="${filePath}${filePrefix}.cpuLoad.dat"
+ filePattern="${filePath}${filePrefix}.cpuLoad-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="cpuRunningThreads"
fileName="${filePath}${filePrefix}.cpuRunningThreads.dat"
+ filePattern="${filePath}${filePrefix}.cpuRunningThreads-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="heapCommit"
fileName="${filePath}${filePrefix}.heapCommit.dat"
+ filePattern="${filePath}${filePrefix}.heapCommit-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="heapInit"
fileName="${filePath}${filePrefix}.heapInit.dat"
+ filePattern="${filePath}${filePrefix}.heapInit-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="heapMax" fileName="${filePath}${filePrefix}.heapMax.dat"
+ filePattern="${filePath}${filePrefix}.heapMax-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="heapUsed"
fileName="${filePath}${filePrefix}.heapUsed.dat"
+ filePattern="${filePath}${filePrefix}.heapUsed-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="latency" fileName="${filePath}${filePrefix}.latency.dat"
+ filePattern="${filePath}${filePrefix}.latency-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="maxLifeTimeInQueue"
fileName="${filePath}${filePrefix}.maxLifeTimeInQueue.dat"
+ filePattern="${filePath}${filePrefix}.maxLifeTimeInQueue-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="minLifeTimeInQueue"
fileName="${filePath}${filePrefix}.minLifeTimeInQueue.dat"
+ filePattern="${filePath}${filePrefix}.minLifeTimeInQueue-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="nonHeapCommit"
fileName="${filePath}${filePrefix}.nonHeapCommit.dat"
+ filePattern="${filePath}${filePrefix}.nonHeapCommit-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="nonHeapInit"
fileName="${filePath}${filePrefix}.nonHeapInit.dat"
+ filePattern="${filePath}${filePrefix}.nonHeapInit-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="nonHeapMax"
fileName="${filePath}${filePrefix}.nonHeapMax.dat"
+ filePattern="${filePath}${filePrefix}.nonHeapMax-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="nonHeapUsed"
fileName="${filePath}${filePrefix}.nonHeapUsed.dat"
+ filePattern="${filePath}${filePrefix}.nonHeapUsed-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="totalFailedRequestsPerProvider"
+ fileName="${filePath}${filePrefix}.totalFailedRequestsPerProvider.dat"
+
filePattern="${filePath}${filePrefix}.totalFailedRequestsPerProvider-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="totalFailRequestsPerConsumer"
+ fileName="${filePath}${filePrefix}.totalFailRequestsPerConsumer.dat"
+
filePattern="${filePath}${filePrefix}.totalFailRequestsPerConsumer-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="totalRequestsPerConsumer"
fileName="${filePath}${filePrefix}.totalRequestsPerConsumer.dat"
+ filePattern="${filePath}${filePrefix}.totalRequestsPerConsumer-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="totalRequestsPerProvider"
fileName="${filePath}${filePrefix}.totalRequestsPerProvider.dat"
+ filePattern="${filePath}${filePrefix}.totalRequestsPerProvider-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ <RollingFile name="tps" fileName="${filePath}${filePrefix}.tps.dat"
+ filePattern="${filePath}${filePrefix}.tps-%i.dat">
+ <PatternLayout pattern="%m%n"/>
+ <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
+ <DefaultRolloverStrategy max="${maxFileCount}"/>
+ </RollingFile>
+ </Appenders>
+
+ <Loggers>
+ <Logger name="averageServiceExecutionTime" level="error"
additivity="false">
+ <AppenderRef ref="averageServiceExecutionTime"/>
+ </Logger>
+ <Logger name="averageTimeInQueue" level="error" additivity="false">
+ <AppenderRef ref="averageTimeInQueue"/>
+ </Logger>
+ <Logger name="countInQueue" level="error" additivity="false">
+ <AppenderRef ref="countInQueue"/>
+ </Logger>
+ <Logger name="cpuLoad" level="error" additivity="false">
+ <AppenderRef ref="cpuLoad"/>
+ </Logger>
+ <Logger name="cpuRunningThreads" level="error" additivity="false">
+ <AppenderRef ref="cpuRunningThreads"/>
+ </Logger>
+ <Logger name="heapCommit" level="error" additivity="false">
+ <AppenderRef ref="heapCommit"/>
+ </Logger>
+ <Logger name="heapInit" level="error" additivity="false">
+ <AppenderRef ref="heapInit"/>
+ </Logger>
+ <Logger name="heapMax" level="error" additivity="false">
+ <AppenderRef ref="heapMax"/>
+ </Logger>
+ <Logger name="heapUsed" level="error" additivity="false">
+ <AppenderRef ref="heapUsed"/>
+ </Logger>
+ <Logger name="latency" level="error" additivity="false">
+ <AppenderRef ref="latency"/>
+ </Logger>
+ <Logger name="maxLifeTimeInQueue" level="error" additivity="false">
+ <AppenderRef ref="maxLifeTimeInQueue"/>
+ </Logger>
+ <Logger name="minLifeTimeInQueue" level="error" additivity="false">
+ <AppenderRef ref="minLifeTimeInQueue"/>
+ </Logger>
+ <Logger name="nonHeapCommit" level="error" additivity="false">
+ <AppenderRef ref="nonHeapCommit"/>
+ </Logger>
+ <Logger name="nonHeapInit" level="error" additivity="false">
+ <AppenderRef ref="nonHeapInit"/>
+ </Logger>
+ <Logger name="nonHeapMax" level="error" additivity="false">
+ <AppenderRef ref="nonHeapMax"/>
+ </Logger>
+ <Logger name="nonHeapUsed" level="error" additivity="false">
+ <AppenderRef ref="nonHeapUsed"/>
+ </Logger>
+ <Logger name="totalFailedRequestsPerProvider" level="error"
additivity="false">
+ <AppenderRef ref="totalFailedRequestsPerProvider"/>
+ </Logger>
+ <Logger name="totalFailRequestsPerConsumer" level="error"
additivity="false">
+ <AppenderRef ref="totalFailRequestsPerConsumer"/>
+ </Logger>
+ <Logger name="totalRequestsPerConsumer" level="error" additivity="false">
+ <AppenderRef ref="totalRequestsPerConsumer"/>
+ </Logger>
+ <Logger name="totalRequestsPerProvider" level="error" additivity="false">
+ <AppenderRef ref="totalRequestsPerProvider"/>
+ </Logger>
+ <Logger name="tps" level="error" additivity="false">
+ <AppenderRef ref="tps"/>
+ </Logger>
+ </Loggers>
+</configuration>
\ No newline at end of file
diff --git a/samples/bmi/calculator/src/main/resources/microservice.yaml
b/samples/bmi/calculator/src/main/resources/microservice.yaml
index aae0f15..8069b46 100644
--- a/samples/bmi/calculator/src/main/resources/microservice.yaml
+++ b/samples/bmi/calculator/src/main/resources/microservice.yaml
@@ -1,3 +1,4 @@
+#
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
@@ -15,7 +16,6 @@
## limitations under the License.
## ---------------------------------------------------------------------------
-
# all interconnected microservices must belong to an application wth the same
ID
APPLICATION_ID: bmi
service_description:
@@ -41,8 +41,5 @@ servicecomb:
round_places: 1
file:
enabled: true
- root_path: D:/Temp
#metrics file name prefix setting,default value is "metrics"
- name_prefix: bmi.calculator
- max_rolling_size: 10MB
- max_rolling_count: 10
+ name_prefix: bmi.calculator
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].