Class LangfuseClientBuilder

java.lang.Object
com.langfuse.client.LangfuseClientBuilder

public class LangfuseClientBuilder extends Object
  • Constructor Details

    • LangfuseClientBuilder

      public LangfuseClientBuilder()
  • Method Details

    • credentials

      public LangfuseClientBuilder credentials(String username, String password)
    • xLangfuseSdkName

      public LangfuseClientBuilder xLangfuseSdkName(String xLangfuseSdkName)
      Sets xLangfuseSdkName
    • xLangfuseSdkVersion

      public LangfuseClientBuilder xLangfuseSdkVersion(String xLangfuseSdkVersion)
      Sets xLangfuseSdkVersion
    • xLangfusePublicKey

      public LangfuseClientBuilder xLangfusePublicKey(String xLangfusePublicKey)
      Sets xLangfusePublicKey
    • url

      public LangfuseClientBuilder url(String url)
    • timeout

      public LangfuseClientBuilder timeout(int timeout)
      Sets the timeout (in seconds) for the client. Defaults to 60 seconds.
    • maxRetries

      public LangfuseClientBuilder maxRetries(int maxRetries)
      Sets the maximum number of retries for the client. Defaults to 2 retries.
    • httpClient

      public LangfuseClientBuilder httpClient(okhttp3.OkHttpClient httpClient)
      Sets the underlying OkHttp client
    • addHeader

      public LangfuseClientBuilder addHeader(String name, String value)
      Add a custom header to be sent with all requests. For headers that need to be computed dynamically or conditionally, use the setAdditional() method override instead.
      Parameters:
      name - The header name
      value - The header value
      Returns:
      This builder for method chaining
    • buildClientOptions

      protected ClientOptions buildClientOptions()
    • setEnvironment

      protected void setEnvironment(ClientOptions.Builder builder)
      Sets the environment configuration for the client. Override this method to modify URLs or add environment-specific logic.
      Parameters:
      builder - The ClientOptions.Builder to configure
    • setAuthentication

      protected void setAuthentication(ClientOptions.Builder builder)
      Override this method to customize authentication. This method is called during client options construction to set up authentication headers.
      Parameters:
      builder - The ClientOptions.Builder to configure Example:
      
       @Override
       protected void setAuthentication(ClientOptions.Builder builder) {
           super.setAuthentication(builder); // Keep existing auth
           builder.addHeader("X-API-Key", this.apiKey);
       }
       
    • setCustomHeaders

      protected void setCustomHeaders(ClientOptions.Builder builder)
      Override this method to add or modify custom headers. This method is called during client options construction to set up custom headers defined in the API.
      Parameters:
      builder - The ClientOptions.Builder to configure Example:
      
       @Override
       protected void setCustomHeaders(ClientOptions.Builder builder) {
           super.setCustomHeaders(builder); // Keep existing headers
           builder.addHeader("X-Trace-ID", generateTraceId());
       }
       
    • setTimeouts

      protected void setTimeouts(ClientOptions.Builder builder)
      Sets the request timeout configuration. Override this method to customize timeout behavior.
      Parameters:
      builder - The ClientOptions.Builder to configure
    • setRetries

      protected void setRetries(ClientOptions.Builder builder)
      Sets the retry configuration for failed requests. Override this method to implement custom retry strategies.
      Parameters:
      builder - The ClientOptions.Builder to configure
    • setHttpClient

      protected void setHttpClient(ClientOptions.Builder builder)
      Sets the OkHttp client configuration. Override this method to customize HTTP client behavior (interceptors, connection pools, etc).
      Parameters:
      builder - The ClientOptions.Builder to configure
    • setAdditional

      protected void setAdditional(ClientOptions.Builder builder)
      Override this method to add any additional configuration to the client. This method is called at the end of the configuration chain, allowing you to add custom headers, modify settings, or perform any other client customization.
      Parameters:
      builder - The ClientOptions.Builder to configure Example:
      
       @Override
       protected void setAdditional(ClientOptions.Builder builder) {
           builder.addHeader("X-Request-ID", () -> UUID.randomUUID().toString());
           builder.addHeader("X-Client-Version", "1.0.0");
       }
       
    • validateConfiguration

      protected void validateConfiguration()
      Override this method to add custom validation logic before the client is built. This method is called at the beginning of the build() method to ensure the configuration is valid. Throw an exception to prevent client creation if validation fails. Example:
      
       @Override
       protected void validateConfiguration() {
           super.validateConfiguration(); // Run parent validations
           if (tenantId == null || tenantId.isEmpty()) {
               throw new IllegalStateException("tenantId is required");
           }
       }
       
    • build

      public LangfuseClient build()