Quarkus Langfuse

Describe what the extension does here.

Installation

If you want to use this extension, you need to add the io.quarkiverse.langfuse:quarkus-langfuse extension first to your build file.

For instance, with Maven, add the following dependency to your POM file:

<dependency>
    <groupId>io.quarkiverse.langfuse</groupId>
    <artifactId>quarkus-langfuse</artifactId>
    <version>0.1</version>
</dependency>

Extension Configuration Reference

Remove this section if you don’t have Quarkus configuration properties in your extension.

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

If DevServices has been explicitly enabled or disabled. DevServices are generally enabled by default, unless there is an existing configuration present.

When DevServices is enabled, Quarkus will attempt to automatically configure and start a Langfuse server when running in Dev or Test mode.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_ENABLED

boolean

true

Indicates if the Langfuse server managed by Quarkus Dev Services is shared. When shared, Quarkus looks for running containers using label-based service discovery. If a matching container is found, it is used, and so a second one is not started. Otherwise, Dev Services for Langfuse starts a new container.

The discovery uses the quarkus-dev-service-langfuse label. The value is configured using the service-name property.

Container sharing is only used in dev mode.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_SHARED

boolean

true

The value of the quarkus-dev-service-langfuse label attached to the started container. This property is used when shared is set to true. In this case, before starting a container, Dev Services for Langfuse looks for a container with the quarkus-dev-service-langfuse label set to the configured value. If found, it will use this container instead of starting a new one. Otherwise, it starts a new container with the quarkus-dev-service-langfuse label set to the specified value.

This property is used when you need multiple shared Langfuse servers.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_SERVICE_NAME

string

langfuse

The container image name to use for the Langfuse web server.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_IMAGE_NAME

string

docker.io/langfuse/langfuse:3

The port the Langfuse web server listens on inside the container.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_PORT

int

3000

The username used for authentication with the Langfuse API.

This maps to the Langfuse project public key used to initialize the dev instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_USERNAME

string

quarkus

The password used for authentication with the Langfuse API.

This maps to the Langfuse project secret key used to initialize the dev instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_PASSWORD

string

quarkuslangfuse

Maximum duration to wait for the Langfuse container to start up.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_STARTUP_TIMEOUT

Duration 

${QUARKUS.DEVSERVICES.TIMEOUT:PT3M}

The organization ID to initialize in the Langfuse instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INIT_ORG_ID

string

quarkus

The organization name to initialize in the Langfuse instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INIT_ORG_NAME

string

Quarkus Dev Org

The project ID to initialize in the Langfuse instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INIT_PROJECT_ID

string

quarkus-dev-project

The project name to initialize in the Langfuse instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INIT_PROJECT_NAME

string

quarkus-dev

The user email to initialize in the Langfuse instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INIT_USER_EMAIL

string

quarkus@quarkus.io

The user name to initialize in the Langfuse instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INIT_USER_NAME

string

quarkus

The user password to initialize in the Langfuse instance.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INIT_USER_PASSWORD

string

quarkuslangfuse

Whether to enable experimental features in Langfuse.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES

boolean

false

Whether to enable batch export in Langfuse.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_BATCH_EXPORT_ENABLED

boolean

false

The delay between ingestion queue processing cycles.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INGESTION_QUEUE_DELAY

Duration 

The interval between ClickHouse write flushes for ingested events.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL

Duration 

The email "from" address for Langfuse email notifications.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_EMAIL_FROM_ADDRESS

string

The SMTP connection URL for Langfuse email notifications.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_SMTP_CONNECTION_URL

string

Environment variables that are passed to the Langfuse web server container.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_LANGFUSE_CONTAINER_ENV__CONTAINER_ENV_

Map<String,String>

The container image name to use for the PostgreSQL database.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_POSTGRES_IMAGE_NAME

string

postgres:17

The database username.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_POSTGRES_USERNAME

string

quarkus

The database password.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_POSTGRES_PASSWORD

string

quarkuspostgres

The database name.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_POSTGRES_DATABASE_NAME

string

quarkus-langfuse

Environment variables that are passed to the PostgreSQL container.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_POSTGRES_CONTAINER_ENV__CONTAINER_ENV_

Map<String,String>

The container image name to use for the ClickHouse analytics database.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_CLICKHOUSE_IMAGE_NAME

string

clickhouse/clickhouse-server

The database username.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_CLICKHOUSE_USERNAME

string

quarkus

The database password.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_CLICKHOUSE_PASSWORD

string

quarkusclickhouse

The database name.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_CLICKHOUSE_DATABASE_NAME

string

quarkusclickhouse

Environment variables that are passed to the ClickHouse container.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_CLICKHOUSE_CONTAINER_ENV__CONTAINER_ENV_

Map<String,String>

The container image name to use for the Redis cache.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_REDIS_IMAGE_NAME

string

redis:7

The Redis password.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_REDIS_PASSWORD

string

quarkusredis

Whether TLS is enabled for the Redis connection.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_REDIS_TLS_ENABLED

boolean

false

Environment variables that are passed to the Redis container.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_REDIS_CONTAINER_ENV__CONTAINER_ENV_

Map<String,String>

The container image name to use for the MinIO object storage.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_MINIO_IMAGE_NAME

string

cgr.dev/chainguard/minio

The MinIO root user.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_MINIO_ROOT_USER

string

quarkus

The MinIO root password.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_MINIO_ROOT_PASSWORD

string

quarkusminio

The name of the S3 bucket to create.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_MINIO_BUCKET_NAME

string

quarkuslangfuse

Environment variables that are passed to the MinIO container.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_MINIO_CONTAINER_ENV__CONTAINER_ENV_

Map<String,String>

The container image name to use for the Langfuse worker.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_WORKER_IMAGE_NAME

string

docker.io/langfuse/langfuse-worker:3

Environment variables that are passed to the Langfuse worker container.

Environment variable: QUARKUS_LANGFUSE_DEVSERVICES_WORKER_CONTAINER_ENV__CONTAINER_ENV_

Map<String,String>

The base URL of the Langfuse server

Environment variable: QUARKUS_LANGFUSE_BASE_URL

string

required

Retrieves the username used for authentication.

Environment variable: QUARKUS_LANGFUSE_USERNAME

string

required

Retrieves the password used for authentication.

Environment variable: QUARKUS_LANGFUSE_PASSWORD

string

required

Timeout for Langfuse calls

Environment variable: QUARKUS_LANGFUSE_TIMEOUT

Duration 

1M

Whether the Langfuse client should log requests

Environment variable: QUARKUS_LANGFUSE_LOG_REQUESTS

boolean

false

Whether the Langfuse client should log responses

Environment variable: QUARKUS_LANGFUSE_LOG_RESPONSES

boolean

false

Controls whether request/response bodies are pretty-printed if log-requests() or log-responses() is set to true

Environment variable: QUARKUS_LANGFUSE_PRETTY_PRINT

boolean

false

Timeout to establish a connection to Langfuse.

Defaults to quarkus.langfuse.timeout

Environment variable: QUARKUS_LANGFUSE_CONNECT_TIMEOUT

Duration 

${QUARKUS.LANGFUSE.TIMEOUT}

Timeout for receiving a response from the Langfuse.

Defaults to quarkus.langfuse.timeout

Environment variable: QUARKUS_LANGFUSE_READ_TIMEOUT

Duration 

${QUARKUS.LANGFUSE.TIMEOUT}

About the Duration format

To write duration values, use the standard java.time.Duration format. See the Duration#parse() Java API documentation for more information.

You can also use a simplified format, starting with a number:

  • If the value is only a number, it represents time in seconds.

  • If the value is a number followed by ms, it represents time in milliseconds.

In other cases, the simplified format is translated to the java.time.Duration format for parsing:

  • If the value is a number followed by h, m, or s, it is prefixed with PT.

  • If the value is a number followed by d, it is prefixed with P.