CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-langfuse--langfuse-java

Java client for the Langfuse API providing access to observability and analytics features for LLM applications

Overview
Eval results
Files

metrics.mddocs/

Metrics

The Metrics API provides access to project-level metrics and analytics using a JSON query object.

Capabilities

MetricsClient

Client for retrieving project metrics.

/**
 * Get metrics from the Langfuse project using a query object
 *
 * @param request Metrics query with JSON string
 * @param requestOptions Optional request configuration
 */
MetricsResponse metrics(GetMetricsRequest request);
MetricsResponse metrics(GetMetricsRequest request, RequestOptions requestOptions);

Usage Example:

import com.langfuse.client.LangfuseClient;
import com.langfuse.client.resources.metrics.requests.*;
import com.langfuse.client.resources.metrics.types.*;

LangfuseClient client = LangfuseClient.builder()
    .url("https://cloud.langfuse.com")
    .credentials("pk-lf-...", "sk-lf-...")
    .build();

// Create metrics query (JSON string)
String query = """
    {
        "metric": "traces",
        "filters": {
            "environment": "production",
            "fromTimestamp": "2025-10-01T00:00:00Z",
            "toTimestamp": "2025-10-14T23:59:59Z"
        },
        "groupBy": ["userId", "name"]
    }
    """;

GetMetricsRequest request = GetMetricsRequest.builder()
    .query(query)
    .build();

MetricsResponse response = client.metrics().metrics(request);

// Response data is a list of result maps
List<Map<String, Object>> data = response.getData();
System.out.println("Metrics data: " + data);

Request Types

GetMetricsRequest

/**
 * Request for querying metrics
 */
public final class GetMetricsRequest {
    String getQuery();  // JSON query string

    static Builder builder();
}

Response Types

MetricsResponse

/**
 * Metrics query response
 */
public final class MetricsResponse {
    List<Map<String, Object>> getData();  // List of result maps with metric values and dimensions

    static Builder builder();
}

Query Structure

The query parameter accepts a JSON string with the following structure:

{
  "metric": "traces|observations|scores|costs",
  "filters": {
    "environment": "string",
    "userId": "string",
    "name": "string",
    "fromTimestamp": "ISO 8601 timestamp",
    "toTimestamp": "ISO 8601 timestamp",
    "tags": ["tag1", "tag2"]
  },
  "groupBy": ["userId", "name", "environment"],
  "aggregation": "count|sum|avg|min|max"
}

Example Queries

Trace Count by User

String query = """
    {
        "metric": "traces",
        "filters": {
            "fromTimestamp": "2025-10-01T00:00:00Z",
            "toTimestamp": "2025-10-31T23:59:59Z"
        },
        "groupBy": ["userId"],
        "aggregation": "count"
    }
    """;

GetMetricsRequest request = GetMetricsRequest.builder()
    .query(query)
    .build();

MetricsResponse response = client.metrics().metrics(request);

Total Cost by Environment

String query = """
    {
        "metric": "costs",
        "filters": {
            "fromTimestamp": "2025-10-01T00:00:00Z"
        },
        "groupBy": ["environment"],
        "aggregation": "sum"
    }
    """;

GetMetricsRequest request = GetMetricsRequest.builder()
    .query(query)
    .build();

MetricsResponse response = client.metrics().metrics(request);

Average Score by Name

String query = """
    {
        "metric": "scores",
        "filters": {
            "name": "quality",
            "fromTimestamp": "2025-10-01T00:00:00Z"
        },
        "groupBy": ["environment"],
        "aggregation": "avg"
    }
    """;

GetMetricsRequest request = GetMetricsRequest.builder()
    .query(query)
    .build();

MetricsResponse response = client.metrics().metrics(request);

Best Practices

  1. Use Date Filters: Always include fromTimestamp/toTimestamp for performance
  2. Limit Grouping: Avoid grouping by too many dimensions
  3. Cache Results: Cache metrics responses for dashboards
  4. Handle Response: Parse the Object response based on your query structure
  5. Monitor Performance: Track query performance for large datasets

Related Documentation

  • Traces and Observations - Trace data sources
  • Scores - Score data sources

Install with Tessl CLI

npx tessl i tessl/maven-com-langfuse--langfuse-java

docs

client-configuration.md

comments-annotations.md

common-types.md

datasets.md

exceptions.md

health.md

index.md

ingestion.md

media.md

metrics.md

models.md

pagination.md

projects-organizations.md

prompts.md

scim.md

scores.md

sessions.md

traces-observations.md

tile.json