Compare commits

...
53 Commits
Author SHA1 Message Date
Jast aeee629c5f Merge branch 'master' into traces 2025-05-09 13:16:04 +08:00
Logic cc4b63f9ad Merge branch 'master' into traces 2025-05-07 22:52:23 +08:00
Logic 93a22c3b22 style(hertzbeat-otel): format OpenTelemetryConfig and OpenTelemetryLogbackAppenderInstaller
- Update code formatting in OpenTelemetryConfig.java and OpenTelemetryLogbackAppenderInstaller.java
- Adjust indentation and line breaks for better readability
- Remove unnecessary spaces in method implementations
2025-05-07 18:17:45 +08:00
Logic 8954775632 Merge branch 'master' into traces 2025-05-07 17:30:16 +08:00
Logic 59781ad673 feat(otel): integrate OpenTelemetry for GreptimeDB logs and traces- Rename hertzbeat-log to hertzbeat-otel
- Update dependencies to use OpenTelemetry instrumentation
- Refactor OpenTelemetry configuration for GreptimeDB integration
- Add OpenTelemetryLogbackAppenderInstaller for Logback integration
- Update Maven pom files to reflect new dependencies and structure
2025-05-07 17:26:19 +08:00
Logic ce61c7d456 Merge branch 'master' of github.com:apache/hertzbeat 2025-05-06 10:47:33 +08:00
Logic 320766a48e Merge branch 'master' of github.com:apache/hertzbeat 2025-04-17 16:57:54 +08:00
Logic efb2ac02df Merge branch 'master' of github.com:apache/hertzbeat 2025-04-07 10:14:36 +08:00
Logic 06c939c810 Merge branch 'master' of github.com:apache/hertzbeat 2025-04-03 15:57:12 +08:00
Logic e56823b240 Merge branch 'master' of github.com:apache/hertzbeat 2025-03-27 10:20:45 +08:00
Logic 3b18d1ddaf Merge branch 'master' of github.com:apache/hertzbeat 2025-03-06 16:21:20 +08:00
Logic d44fe43eb0 Merge branch 'master' of github.com:apache/hertzbeat 2025-01-24 08:12:57 +08:00
Logic a221ddfba2 Merge branch 'master' of github.com:apache/hertzbeat 2025-01-23 15:29:18 +08:00
Logic 8e31a3147b Merge branch 'master' of github.com:apache/hertzbeat 2025-01-10 08:47:21 +08:00
Logic d2f9a56fe7 Merge branch 'master' of github.com:apache/hertzbeat 2025-01-08 10:33:11 +08:00
Logic a0b41dc7bb Merge branch 'master' of github.com:apache/hertzbeat 2024-12-27 08:24:42 +08:00
Logic 3f572a1ddc Merge branch 'master' of github.com:apache/hertzbeat 2024-11-26 11:22:35 +08:00
Logic 767deccee5 Merge branch 'master' of github.com:apache/hertzbeat 2024-10-26 10:42:23 +08:00
Logic 9221e2f6c1 Merge branch 'master' of github.com:apache/hertzbeat 2024-10-22 17:29:48 +08:00
Logic 0a36b3df90 Merge branch 'master' of github.com:apache/hertzbeat 2024-09-24 11:20:58 +08:00
zqr10159 f3202133d8 Merge branch 'master' of github.com:apache/hertzbeat 2024-09-12 15:48:50 +08:00
zqr10159 6ee458c521 Merge branch 'master' of github.com:apache/hertzbeat 2024-09-11 15:04:01 +08:00
zqr10159 cbc1caf4ac Merge branch 'master' of github.com:apache/hertzbeat 2024-09-06 08:55:12 +08:00
zqr10159 86db630fc7 Merge branch 'master' of github.com:apache/hertzbeat 2024-09-04 08:25:56 +08:00
zqr10159 145c4d1d5e Merge branch 'master' of github.com:apache/hertzbeat 2024-08-31 09:05:14 +08:00
zqr10159 0217cbb7f9 Merge branch 'master' of github.com:apache/hertzbeat 2024-08-30 08:54:44 +08:00
zqr10159 9f5df95f29 Merge branch 'master' of github.com:apache/hertzbeat 2024-08-29 11:35:20 +08:00
zqr10159 0f955019bf Merge branch 'master' of github.com:apache/hertzbeat 2024-08-29 08:36:55 +08:00
zqr10159 129b6282d3 Merge branch 'master' of github.com:apache/hertzbeat 2024-08-23 10:28:34 +08:00
zqr10159 36c5d8f518 Merge branch 'master' of github.com:apache/hertzbeat 2024-07-17 14:55:40 +08:00
zqr10159 de8a473e24 Merge branch 'master' of github.com:apache/hertzbeat 2024-07-16 09:09:47 +08:00
zqr10159 ffc4641dc9 Merge branch 'master' of github.com:apache/hertzbeat 2024-07-09 15:45:37 +08:00
zqr10159 d0cb9f8bf3 Merge branch 'master' of github.com:apache/hertzbeat 2024-07-05 11:36:50 +08:00
zqr10159 0d4ff33f19 Merge branch 'master' of github.com:apache/hertzbeat 2024-07-05 11:15:02 +08:00
zqr10159 86f40e5e15 Merge branch 'master' of github.com:apache/hertzbeat 2024-07-03 08:06:25 +08:00
zqr10159 dbbbc045d4 Merge branch 'master' of github.com:apache/hertzbeat 2024-07-02 15:41:38 +08:00
zqr10159 b0fdd5e11d Merge branch 'master' of github.com:apache/hertzbeat 2024-06-18 11:30:05 +08:00
zqr10159 9c5ea20b15 [doc]HertzBeat 1.6.0 Upgrade Guide. 2024-06-11 14:57:35 +08:00
zqr10159 7a74f80906 Merge branch 'master' of github.com:apache/hertzbeat 2024-06-11 14:36:25 +08:00
zqr10159 ee32a890eb Merge branch 'master' of github.com:dromara/hertzbeat 2024-06-01 10:08:28 +08:00
zqr10159 ec1c04194b Merge branch 'master' of github.com:dromara/hertzbeat 2024-05-18 15:52:12 +08:00
zqr10159 55d8dfdede Merge branch 'master' of github.com:dromara/hertzbeat 2024-05-14 08:15:58 +08:00
zqr10159 918073dca7 Merge branch 'master' of github.com:dromara/hertzbeat 2024-05-11 08:45:53 +08:00
zqr10159 2defaecd93 Merge branch 'master' of github.com:dromara/hertzbeat 2024-05-10 08:39:59 +08:00
zqr10159 641ba47f4c Merge branch 'master' of github.com:dromara/hertzbeat 2024-05-09 17:08:47 +08:00
zqr10159 ccbc2151ae Merge branch 'master' of github.com:dromara/hertzbeat 2024-05-07 09:05:40 +08:00
zqr10159 1cb919a301 Merge branch 'master' of github.com:dromara/hertzbeat 2024-04-29 10:47:25 +08:00
zqr10159 7351a03c81 Merge branch 'master' of github.com:dromara/hertzbeat 2024-04-28 11:47:27 +08:00
zqr10159 26c3a802d1 Merge branch 'master' of github.com:dromara/hertzbeat 2024-04-25 09:17:04 +08:00
zqr10159 47dbe2fd2a Merge branch 'master' of github.com:dromara/hertzbeat 2024-04-24 08:13:26 +08:00
zqr10159 f4943e9d89 Merge branch 'master' of github.com:dromara/hertzbeat 2024-04-23 14:53:04 +08:00
zqr10159 1f6614d1a1 [remove]Remove optional comments. 2024-04-23 10:36:58 +08:00
zqr10159 4a96c02b9a [remove]Remove optional comments. 2024-04-23 10:35:21 +08:00
10 changed files with 233 additions and 167 deletions
@@ -1,117 +0,0 @@
/*
* 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.
*
*/
package org.apache.hertzbeat.log.config;
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_NAME;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter;
import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.logs.SdkLoggerProvider;
import io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor;
import io.opentelemetry.sdk.resources.Resource;
import jakarta.annotation.PostConstruct;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.hertzbeat.warehouse.store.history.greptime.GreptimeProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
/**
* OpenTelemetryConfig is responsible for initializing OpenTelemetry with the specified service name and GrepTimeDB endpoint.
* It ensures that the initialization is done in a thread-safe manner and includes authentication for GrepTimeDB.
*/
@Configuration
@Slf4j
public class OpenTelemetryConfig {
@Autowired
private GreptimeProperties greptimeProperties;
/**
* Initializes OpenTelemetry with the given service name and GrepTimeDB endpoint.
* Includes authentication if configured in GreptimeProperties.
*/
@PostConstruct
public void initializeOpenTelemetry() {
if (greptimeProperties == null || !greptimeProperties.enabled()) {
log.info("GrepTimeDB logging is disabled, skipping OpenTelemetry configuration.");
return;
}
try {
Resource resource = Resource.getDefault()
.merge(Resource.builder()
.put(SERVICE_NAME, "HertzBeat")
.build());
Map<String, String> headers = new HashMap<>();
headers.put("X-Greptime-DB-Name", "public");
headers.put("X-Greptime-Log-Table-Name", "hzb_log");
addAuthenticationHeaders(headers);
OtlpHttpLogRecordExporter logExporter = OtlpHttpLogRecordExporter.builder()
.setEndpoint(greptimeProperties.httpEndpoint() + "/v1/otlp/v1/logs")
.setHeaders(()-> headers)
.setTimeout(10, TimeUnit.SECONDS)
.build();
SdkLoggerProvider loggerProvider = SdkLoggerProvider.builder()
.setResource(resource)
.addLogRecordProcessor(
BatchLogRecordProcessor.builder(logExporter)
.setScheduleDelay(1000, TimeUnit.MILLISECONDS)
.setMaxExportBatchSize(512)
.build())
.build();
OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()
.setLoggerProvider(loggerProvider)
.build();
OpenTelemetryAppender.install(openTelemetry);
log.info("OpenTelemetry successfully configured with GrepTimeDB exporter.");
} catch (Exception e) {
log.error("Failed to initialize OpenTelemetry with GrepTimeDB", e);
}
}
/**
* Adds authentication headers to the provided map if username and password are configured.
*
* @param headers the map to which authentication headers will be added
*/
private void addAuthenticationHeaders(Map<String, String> headers) {
if (StringUtils.isNotBlank(greptimeProperties.username())
&& StringUtils.isNotBlank(greptimeProperties.password())) {
String credentials = greptimeProperties.username() + ":" + greptimeProperties.password();
String encodedCredentials = Base64.getEncoder().encodeToString(credentials.getBytes());
headers.put("Authorization", "Basic " + encodedCredentials);
}
}
}
+1 -1
View File
@@ -92,7 +92,7 @@
<!-- log -->
<dependency>
<groupId>org.apache.hertzbeat</groupId>
<artifactId>hertzbeat-log</artifactId>
<artifactId>hertzbeat-otel</artifactId>
</dependency>
<!-- spring -->
<dependency>
@@ -35,7 +35,7 @@ import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
public class JacksonConfig {
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer() {
public Jackson2ObjectMapperBuilderCustomizer jacksonCustomizer() {
return builder -> {
JavaTimeModule javaTimeModule = new JavaTimeModule();
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
@@ -24,7 +24,7 @@
<version>2.0-SNAPSHOT</version>
</parent>
<artifactId>hertzbeat-log</artifactId>
<artifactId>hertzbeat-otel</artifactId>
<name>${project.artifactId}</name>
<properties>
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
@@ -43,25 +43,14 @@
<artifactId>hertzbeat-warehouse</artifactId>
</dependency>
<!-- OpenTelemetry -->
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-logs</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-otlp</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-logback-appender-1.0</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.apache.hertzbeat.log.config;
package org.apache.hertzbeat.otel.config;
import org.apache.hertzbeat.common.constants.ConfigConstants;
import org.apache.hertzbeat.common.constants.SignConstants;
@@ -0,0 +1,154 @@
/*
* 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.
*
*/
package org.apache.hertzbeat.otel.config;
import static io.opentelemetry.semconv.ServiceAttributes.SERVICE_NAME;
import static org.apache.http.HttpHeaders.CONTENT_TYPE;
import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter;
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder;
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
import io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor;
import io.opentelemetry.sdk.resources.Resource;
import java.util.Base64;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.hertzbeat.warehouse.store.history.greptime.GreptimeProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* OpenTelemetryConfig provides customizations for the auto-configured OpenTelemetry SDK,
* specifically for integrating with GrepTimeDB for logs and traces.
*/
@Configuration
@Slf4j
public class OpenTelemetryConfig {
private static final String HERTZBEAT_SERVICE_NAME = "HertzBeat";
private static final String DEFAULT_GREPTIME_DB_NAME = "public";
private static final String DEFAULT_LOGS_TABLE_NAME = "hzb_logs";
private static final String DEFAULT_TRACES_TABLE_NAME = "hzb_traces";
private static final String GREPTIME_DB_NAME_HEADER = "X-Greptime-DB-Name";
private static final String GREPTIME_LOG_TABLE_NAME_HEADER = "X-Greptime-Log-Table-Name";
private static final String GREPTIME_TRACE_TABLE_NAME_HEADER = "X-Greptime-Trace-Table-Name";
private static final String GREPTIME_PIPELINE_NAME_HEADER = "X-Greptime-Pipeline-Name";
/**
* Adds authentication headers if credentials are provided.
*/
private void addAuthenticationHeaders(Map<String, String> headers, GreptimeProperties greptimeProps) {
if (greptimeProps != null && StringUtils.isNotBlank(greptimeProps.username())
&& StringUtils.isNotBlank(greptimeProps.password())) {
String credentials = greptimeProps.username() + ":" + greptimeProps.password();
String encodedCredentials = Base64.getEncoder().encodeToString(credentials.getBytes());
headers.put("Authorization", "Basic " + encodedCredentials);
log.debug("Added Basic Authentication header for GreptimeDB.");
} else {
log.debug("GreptimeDB username/password not configured, skipping Authentication header.");
}
}
/**
* Builds HTTP Log headers for OTLP communication with GreptimeDB.
*/
private Map<String, String> buildGreptimeOtlpLogHeaders(GreptimeProperties greptimeProps) {
Map<String, String> headers = new HashMap<>();
headers.put(GREPTIME_DB_NAME_HEADER, DEFAULT_GREPTIME_DB_NAME);
headers.put(GREPTIME_LOG_TABLE_NAME_HEADER, DEFAULT_LOGS_TABLE_NAME);
addAuthenticationHeaders(headers, greptimeProps);
return Collections.unmodifiableMap(headers);
}
/**
* Builds HTTP Trace headers for OTLP communication with GreptimeDB.
*/
private Map<String, String> buildGreptimeOtlpTraceHeaders(GreptimeProperties greptimeProps) {
Map<String, String> headers = new HashMap<>();
headers.put(GREPTIME_DB_NAME_HEADER, DEFAULT_GREPTIME_DB_NAME);
headers.put(GREPTIME_TRACE_TABLE_NAME_HEADER, DEFAULT_TRACES_TABLE_NAME);
headers.put(CONTENT_TYPE, "application/x-protobuf");
headers.put(GREPTIME_PIPELINE_NAME_HEADER, "greptime_trace_v1");
addAuthenticationHeaders(headers, greptimeProps);
return Collections.unmodifiableMap(headers);
}
/**
* Provides an AutoConfigurationCustomizerProvider to tailor the auto-configured OpenTelemetry SDK.
* This includes setting up GrepTimeDB exporters for logs and traces, and customizing the resource.
* Active only if 'greptime.enabled' is true.
*
* @param greptimeProperties Configuration for GrepTimeDB.
* @return AutoConfigurationCustomizerProvider instance.
*/
@Bean
@ConditionalOnProperty(name = "warehouse.store.greptime.enabled", havingValue = "true")
public AutoConfigurationCustomizerProvider greptimeOtelCustomizer(GreptimeProperties greptimeProperties) {
log.info("GreptimeDB is enabled. Applying OpenTelemetry SDK customizations.");
return providerCustomizer -> providerCustomizer
.addPropertiesCustomizer(sdkConfigProperties -> {
Map<String, String> newProperties = new HashMap<>();
newProperties.put("otel.metrics.exporter", "none");
newProperties.put("otel.traces.exporter", "otlp");
newProperties.put("otel.logs.exporter", "none");
return newProperties;
})
.addResourceCustomizer((resource, configProperties) -> {
log.info("Customizing auto-configured OpenTelemetry Resource with service name: {}.", HERTZBEAT_SERVICE_NAME);
return resource.merge(Resource.builder().put(SERVICE_NAME, HERTZBEAT_SERVICE_NAME).build());
})
.addSpanExporterCustomizer((originalSpanExporter, configProperties) -> {
String traceEndpoint = greptimeProperties.httpEndpoint() + "/v1/otlp/v1/traces";
log.info("Programmatically configuring OtlpHttpSpanExporter for GreptimeDB traces. Endpoint: {}", traceEndpoint);
Map<String, String> traceHeaders = buildGreptimeOtlpTraceHeaders(greptimeProperties);
log.info("Trace Headers for GreptimeDB (programmatic HTTP config): {}", traceHeaders);
OtlpHttpSpanExporterBuilder httpExporterBuilder = OtlpHttpSpanExporter.builder()
.setEndpoint(traceEndpoint)
.setHeaders(() -> traceHeaders)
.setTimeout(10000, TimeUnit.MILLISECONDS);
return httpExporterBuilder.build();
})
.addLoggerProviderCustomizer((sdkLoggerProviderBuilder, configProperties) -> {
log.info("Customizing auto-configured SdkLoggerProviderBuilder for GrepTimeDB logs.");
OtlpHttpLogRecordExporter logExporter = OtlpHttpLogRecordExporter.builder()
.setEndpoint(greptimeProperties.httpEndpoint() + "/v1/otlp/v1/logs")
.setHeaders(() -> buildGreptimeOtlpLogHeaders(greptimeProperties))
.setTimeout(10000, TimeUnit.MILLISECONDS)
.build();
BatchLogRecordProcessor batchLogProcessor = BatchLogRecordProcessor.builder(logExporter)
.setScheduleDelay(1000, TimeUnit.MILLISECONDS)
.setMaxExportBatchSize(512)
.build();
return sdkLoggerProviderBuilder.addLogRecordProcessor(batchLogProcessor);
});
}
}
@@ -0,0 +1,58 @@
/*
* 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.
*
*/
package org.apache.hertzbeat.otel.config;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
/**
* Installs the OpenTelemetryAppender for Logback once the auto-configured
* OpenTelemetry SDK is available and GrepTimeDB integration is enabled.
*/
@Component
@ConditionalOnProperty(name = "warehouse.store.greptime.enabled", havingValue = "true")
@Slf4j
public class OpenTelemetryLogbackAppenderInstaller implements InitializingBean {
private final OpenTelemetry openTelemetry;
@Autowired
public OpenTelemetryLogbackAppenderInstaller(OpenTelemetry openTelemetry) {
this.openTelemetry = openTelemetry;
}
@Override
public void afterPropertiesSet() {
if (this.openTelemetry instanceof OpenTelemetrySdk) {
log.info("Auto-configured OpenTelemetry SDK detected. Installing OpenTelemetryAppender for Logback.");
OpenTelemetryAppender.install(this.openTelemetry);
} else {
log.warn("OpenTelemetry SDK is not an instance of OpenTelemetrySdk (type: {}). "
+ "OpenTelemetryAppender for Logback will not be installed. "
+ "Ensure OpenTelemetry auto-configuration is active and correctly providing an SDK.",
this.openTelemetry != null ? this.openTelemetry.getClass().getName() : "null");
}
}
}
@@ -14,4 +14,4 @@
# limitations under the License.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.apache.hertzbeat.log.config.LogAutoConfiguration
org.apache.hertzbeat.otel.config.LogAutoConfiguration
+1 -4
View File
@@ -435,10 +435,7 @@ The text of each license is the standard Apache 2.0 license.
https://mvnrepository.com/artifact/org.webjars/swagger-ui/5.10.3 Apache-2.0
https://mvnrepository.com/artifact/com.google.flatbuffers/flatbuffers-java/1.12.0 Apache-2.0
https://mvnrepository.com/artifact/com.vesoft/client/3.6.0 Apache-2.0
https://mvnrepository.com/artifact/io.opentelemetry/opentelemetry-api/1.49.0 Apache-2.0
https://mvnrepository.com/artifact/io.opentelemetry/opentelemetry-sdk/1.49.0 Apache-2.0
https://mvnrepository.com/artifact/io.opentelemetry/opentelemetry-sdk-logs/1.49.0 Apache-2.0
https://mvnrepository.com/artifact/io.opentelemetry/opentelemetry-exporter-otlp/1.49.0 Apache-2.0
https://mvnrepository.com/artifact/io.opentelemetry.instrumentation/opentelemetry-spring-boot-starter-2.15.0 Apache-2.0
https://mvnrepository.com/artifact/io.opentelemetry.instrumentation/opentelemetry-logback-appender-1.0 Apache-2.0
========================================================================
+10 -25
View File
@@ -88,7 +88,7 @@
<module>hertzbeat-push</module>
<module>hertzbeat-plugin</module>
<module>hertzbeat-grafana</module>
<module>hertzbeat-log</module>
<module>hertzbeat-otel</module>
<module>hertzbeat-e2e</module>
<module>hertzbeat-base</module>
<module>hertzbeat-mcp</module>
@@ -175,7 +175,7 @@
<arrow.version>18.1.0</arrow.version>
<snappy-java.version>1.1.10.7</snappy-java.version>
<sshd-sftp.version>2.13.1</sshd-sftp.version>
<opentelemetry-api.version>1.43.0</opentelemetry-api.version>
<opentelemetry-starter.version>2.15.0</opentelemetry-starter.version>
<opentelemetry-logback.version>2.14.0-alpha</opentelemetry-logback.version>
</properties>
@@ -238,7 +238,7 @@
<!-- log -->
<dependency>
<groupId>org.apache.hertzbeat</groupId>
<artifactId>hertzbeat-log</artifactId>
<artifactId>hertzbeat-otel</artifactId>
<version>${hertzbeat.version}</version>
</dependency>
<!-- collector-basic -->
@@ -477,33 +477,18 @@
<version>${sshd-sftp.version}</version>
</dependency>
<!-- OpenTelemetry -->
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
<version>${opentelemetry-api.version}</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk</artifactId>
<version>${opentelemetry-api.version}</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-logs</artifactId>
<version>${opentelemetry-api.version}</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-otlp</artifactId>
<version>${opentelemetry-api.version}</version>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-logback-appender-1.0</artifactId>
<version>${opentelemetry-logback.version}</version>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-bom</artifactId>
<version>${opentelemetry-starter.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>