Skip to content

Commit c489a27

Browse files
committed
chore: resource attributes on tracer builder
1 parent 49b741d commit c489a27

10 files changed

Lines changed: 45 additions & 27 deletions

File tree

examples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<dependency>
2727
<groupId>com.judgmentlabs</groupId>
2828
<artifactId>judgeval-java</artifactId>
29-
<version>0.3.0</version>
29+
<version>0.4.2</version>
3030
<exclusions>
3131
<exclusion>
3232
<groupId>io.opentelemetry</groupId>

judgeval-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.judgmentlabs</groupId>
55
<artifactId>judgeval-java</artifactId>
6-
<version>0.4.1</version>
6+
<version>0.4.2</version>
77
<packaging>jar</packaging>
88
<name>Judgeval Java</name>
99
<description>Java SDK for Judgeval</description>

judgeval-java/src/main/java/com/judgmentlabs/judgeval/Env.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ public final class Env {
44
private Env() {
55
}
66

7-
public static final String JUDGMENT_API_KEY = getEnvVar("JUDGMENT_API_KEY");
8-
public static final String JUDGMENT_ORG_ID = getEnvVar("JUDGMENT_ORG_ID");
9-
public static final String JUDGMENT_API_URL = getEnvVar("JUDGMENT_API_URL",
7+
public static final String JUDGMENT_API_KEY = getEnvVar("JUDGMENT_API_KEY");
8+
public static final String JUDGMENT_ORG_ID = getEnvVar("JUDGMENT_ORG_ID");
9+
public static final String JUDGMENT_API_URL = getEnvVar("JUDGMENT_API_URL",
1010
"https://api.judgmentlabs.ai");
11-
public static final String JUDGMENT_DEFAULT_GPT_MODEL = getEnvVar("JUDGMENT_DEFAULT_GPT_MODEL", "gpt-4.1");
12-
public static final String JUDGMENT_NO_COLOR = getEnvVar("JUDGMENT_NO_COLOR");
13-
public static final String JUDGMENT_LOG_LEVEL = getEnvVar("JUDGMENT_LOG_LEVEL", "warn");
11+
public static final String JUDGMENT_NO_COLOR = getEnvVar("JUDGMENT_NO_COLOR");
12+
public static final String JUDGMENT_LOG_LEVEL = getEnvVar("JUDGMENT_LOG_LEVEL", "warn");
1413

1514
private static String getEnvVar(String varName) {
1615
return getEnvVar(varName, null);

judgeval-java/src/main/java/com/judgmentlabs/judgeval/Judgeval.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
* evaluation factories.
1313
*/
1414
public class Judgeval {
15-
private final String apiKey;
16-
private final String organizationId;
17-
private final String apiUrl;
15+
private final String apiKey;
16+
private final String organizationId;
17+
private final String apiUrl;
1818
private final JudgmentSyncClient internalClient;
1919

2020
protected Judgeval(Builder builder) {
@@ -64,15 +64,15 @@ public static Builder builder() {
6464
* Builder for configuring and creating Judgeval instances.
6565
*/
6666
public static class Builder {
67-
private String apiKey = Env.JUDGMENT_API_KEY;
67+
private String apiKey = Env.JUDGMENT_API_KEY;
6868
private String organizationId = Env.JUDGMENT_ORG_ID;
69-
private String apiUrl = Env.JUDGMENT_API_URL;
69+
private String apiUrl = Env.JUDGMENT_API_URL;
7070

7171
/**
7272
* Sets the API key for authentication.
7373
*
7474
* @param apiKey
75-
* the API key
75+
* the API key
7676
* @return this builder
7777
*/
7878
public Builder apiKey(String apiKey) {
@@ -84,7 +84,7 @@ public Builder apiKey(String apiKey) {
8484
* Sets the organization ID.
8585
*
8686
* @param organizationId
87-
* the organization ID
87+
* the organization ID
8888
* @return this builder
8989
*/
9090
public Builder organizationId(String organizationId) {
@@ -96,7 +96,7 @@ public Builder organizationId(String organizationId) {
9696
* Sets the API URL.
9797
*
9898
* @param apiUrl
99-
* the API URL
99+
* the API URL
100100
* @return this builder
101101
*/
102102
public Builder apiUrl(String apiUrl) {

judgeval-java/src/main/java/com/judgmentlabs/judgeval/scorers/APIScorer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import com.fasterxml.jackson.annotation.JsonIgnore;
99
import com.fasterxml.jackson.annotation.JsonProperty;
10-
import com.judgmentlabs.judgeval.internal.api.models.ScorerConfig;
1110
import com.judgmentlabs.judgeval.data.APIScorerType;
11+
import com.judgmentlabs.judgeval.internal.api.models.ScorerConfig;
1212

1313
/**
1414
* Base class for API-based scorers that evaluate using the Judgment backend.

judgeval-java/src/main/java/com/judgmentlabs/judgeval/scorers/custom_scorer/CustomScorer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.judgmentlabs.judgeval.scorers.custom_scorer;
22

3-
import com.judgmentlabs.judgeval.internal.api.models.ScorerConfig;
43
import com.judgmentlabs.judgeval.data.APIScorerType;
4+
import com.judgmentlabs.judgeval.internal.api.models.ScorerConfig;
55
import com.judgmentlabs.judgeval.scorers.APIScorer;
66

77
/**

judgeval-java/src/main/java/com/judgmentlabs/judgeval/scorers/prompt_scorer/PromptScorer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import java.util.Map;
55
import java.util.Objects;
66

7-
import com.judgmentlabs.judgeval.internal.api.models.ScorerConfig;
87
import com.judgmentlabs.judgeval.data.APIScorerType;
8+
import com.judgmentlabs.judgeval.internal.api.models.ScorerConfig;
99
import com.judgmentlabs.judgeval.scorers.APIScorer;
1010

1111
/**

judgeval-java/src/main/java/com/judgmentlabs/judgeval/tracer/BaseTracer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@
1212

1313
import com.fasterxml.jackson.databind.ObjectMapper;
1414
import com.judgmentlabs.judgeval.JudgmentAttributeKeys;
15+
import com.judgmentlabs.judgeval.data.Example;
1516
import com.judgmentlabs.judgeval.internal.api.JudgmentSyncClient;
1617
import com.judgmentlabs.judgeval.internal.api.models.ExampleEvaluationRun;
1718
import com.judgmentlabs.judgeval.internal.api.models.ResolveProjectNameRequest;
1819
import com.judgmentlabs.judgeval.internal.api.models.ResolveProjectNameResponse;
1920
import com.judgmentlabs.judgeval.internal.api.models.TraceEvaluationRun;
20-
import com.judgmentlabs.judgeval.utils.Logger;
21-
import com.judgmentlabs.judgeval.data.Example;
2221
import com.judgmentlabs.judgeval.scorers.BaseScorer;
2322
import com.judgmentlabs.judgeval.scorers.custom_scorer.CustomScorer;
2423
import com.judgmentlabs.judgeval.tracer.exporters.JudgmentSpanExporter;
2524
import com.judgmentlabs.judgeval.tracer.exporters.NoOpSpanExporter;
25+
import com.judgmentlabs.judgeval.utils.Logger;
2626

2727
import io.opentelemetry.api.GlobalOpenTelemetry;
2828
import io.opentelemetry.api.trace.Span;

judgeval-java/src/main/java/com/judgmentlabs/judgeval/tracer/Tracer.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
public final class Tracer extends BaseTracer {
2222
private SdkTracerProvider tracerProvider;
23+
private final Attributes resourceAttributes;
2324

2425
private Tracer(Builder builder) {
2526
super(
@@ -28,6 +29,9 @@ private Tracer(Builder builder) {
2829
Objects.requireNonNull(builder.client, "client required"),
2930
builder.serializer != null ? builder.serializer : new GsonSerializer());
3031

32+
this.resourceAttributes = builder.resourceAttributes != null ? builder.resourceAttributes
33+
: Attributes.empty();
34+
3135
if (builder.initialize) {
3236
initialize();
3337
}
@@ -43,12 +47,14 @@ private Tracer(Builder builder) {
4347
public void initialize() {
4448
SpanExporter spanExporter = getSpanExporter();
4549

50+
var attributesBuilder = Attributes.builder()
51+
.put("service.name", projectName)
52+
.put("telemetry.sdk.name", TRACER_NAME)
53+
.put("telemetry.sdk.version", Version.getVersion())
54+
.putAll(resourceAttributes);
55+
4656
var resource = Resource.getDefault()
47-
.merge(Resource.create(Attributes.builder()
48-
.put("service.name", projectName)
49-
.put("telemetry.sdk.name", TRACER_NAME)
50-
.put("telemetry.sdk.version", Version.getVersion())
51-
.build()));
57+
.merge(Resource.create(attributesBuilder.build()));
5258

5359
this.tracerProvider = SdkTracerProvider.builder()
5460
.setResource(resource)
@@ -115,6 +121,7 @@ public static final class Builder {
115121
private boolean enableEvaluation = true;
116122
private ISerializer serializer;
117123
private boolean initialize = true;
124+
private Attributes resourceAttributes;
118125

119126
/**
120127
* Sets the Judgment API client.
@@ -164,6 +171,18 @@ public Builder serializer(ISerializer serializer) {
164171
return this;
165172
}
166173

174+
/**
175+
* Sets additional resource attributes to be included in the tracer.
176+
*
177+
* @param resourceAttributes
178+
* the resource attributes
179+
* @return this builder
180+
*/
181+
public Builder resourceAttributes(Attributes resourceAttributes) {
182+
this.resourceAttributes = resourceAttributes;
183+
return this;
184+
}
185+
167186
/**
168187
* Sets whether to automatically initialize the tracer on build.
169188
*

judgeval-java/src/test/java/com/judgmentlabs/judgeval/JudgevalTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
class JudgevalTest {
1313
private static final String TEST_API_URL = "https://api.test.com";
1414
private static final String TEST_API_KEY = "test-key";
15-
private static final String TEST_ORG_ID = "test-org";
15+
private static final String TEST_ORG_ID = "test-org";
1616

1717
@Test
1818
void builder_withAllParameters_buildsSuccessfully() {

0 commit comments

Comments
 (0)