An open API service indexing awesome lists of open source software.

https://github.com/logicmonitor/lm-telemetry-sdk-java

LM Telemetry SDK for JAVA
https://github.com/logicmonitor/lm-telemetry-sdk-java

Last synced: 8 months ago
JSON representation

LM Telemetry SDK for JAVA

Awesome Lists containing this project

README

          

# **LM Telemetry SDK Java**
[![Java CI with Gradle][ci-image]][ci-url]
[![codecov][codecov-image]][codecov-url]

LM Telemetry SDK java is a wrapper around OpenTelemetry SDK. If you are using LM Telemetry SDK in the application then no need to add OpenTelemetry SDK dependency as it is fetched transitively.
This SDK currently detects Resources on the platforms like

- AWS Elastic Compute Cloud

- AWS Lambda

- Azure VM

- Google Cloud Compute Engine (GCE)

## Getting Started
### Auto Instrumentation
Check [latest agent version](https://github.com/logicmonitor/lm-telemetry-sdk-java/releases/latest)

For java Auto instrumentation Logicmonitor provides lm-agent which have all Opentelemetry provided instrumentation support.

### Auto Instrument your app
```java
java -javaagent:/path/lm-telemetry-agent--alpha.jar \
-Dotel.exporter=otlp \
-Dotel.resource.attributes=service.namespace=,service.name= \
-Dotel.exporter.otlp.endpoint=http://localhost:4317 \
-Dotel.exporter.otlp.insecure=true \
-jar
```

By default, the lm-telemetry Java agent uses OTLP exporter configured to send data to lm-otel collector at http://localhost:4317.
### Manual Instrumentation
Check [Github Package](https://github.com/logicmonitor/lm-telemetry-sdk-java/packages/1615817)
### Gradle

```groovy
dependencies {
implementation ('com.logicmonitor:lm-telemetry-sdk:0.0.1-alpha')
}
```

### Maven
```xml

com.logicmonitor
lm-telemetry-sdk
0.0.1-alpha

```

##### Using LMResourceDetector to detect resource
```java
Resource serviceResource = LMResourceDetector.detect();

//Create Span Exporter
OtlpGrpcSpanExporter spanExporter = OtlpGrpcSpanExporter.builder()
.setEndpoint("http://localhost:4317")
.build();

//Create SdkTracerProvider
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
.addSpanProcessor(BatchSpanProcessor.builder(spanExporter)
.setScheduleDelay(100, TimeUnit.MILLISECONDS).build())
.setResource(serviceResource)
.build();
```

You can also use environment variable or system properties
listed on [OpenTelemetry Document](https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/autoconfigure/README.md#opentelemetry-resource)
to provide resource information.

| System property | Environment variable | Description |
|--------------------------|--------------------------|------------------------------------------------------------------------------------|
| otel.resource.attributes | OTEL_RESOURCE_ATTRIBUTES | Specify resource attributes in the following format: key1=val1,key2=val2,key3=val3 |
| otel.service.name | OTEL_SERVICE_NAME | Specify logical service name. Takes precedence over `service.name` defined with `otel.resource.attributes` |

For Manual Instrumentation refer [Example](https://github.com/logicmonitor/lm-telemetry-sdk-java/tree/main/example/java-manual-instrumentation)

## OpenTelemetry Component Dependency

List of OpenTelemetry Component Dependencies

| Component | Version |
|-----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
| [Trace API](https://github.com/open-telemetry/opentelemetry-java/tree/v1.20.1/api) | v1.20.1 |
| [Trace SDK](https://github.com/open-telemetry/opentelemetry-java/tree/v1.20.1/sdk) | v1.20.1 |
| [OpenTelemetry SDK Autoconfigure](https://github.com/open-telemetry/opentelemetry-java/tree/v1.20.1/sdk-extensions/autoconfigure) | v1.20.1-alpha |
| [OpenTelemetry AWS Utils](https://github.com/open-telemetry/opentelemetry-java-contrib/tree/v1.20.1/aws-resources) | v1.20.1 |
| [OpenTelemetry Semantic Conventions](https://github.com/open-telemetry/opentelemetry-java/tree/v1.20.1/semconv) | v1.20.1 |
| [OpenTelemetry Resource Providers](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/v1.20.1/instrumentation/resources/library) | v1.20.1 |

[ci-image]: https://github.com/logicmonitor/lm-telemetry-sdk-java/actions/workflows/gradle.yml/badge.svg?branch=main
[ci-url]: https://github.com/logicmonitor/lm-telemetry-sdk-java/actions/workflows/gradle.yml
[codecov-image]: https://codecov.io/gh/logicmonitor/lm-telemetry-sdk-java/branch/main/graph/badge.svg?token=ONPPMTKE7F
[codecov-url]: https://codecov.io/gh/logicmonitor/lm-telemetry-sdk-java