### Example Log Output with Tenant ID Source: https://docs.arconia.io/arconia/latest/multitenancy/observability View example log entries that include the tenant identifier, demonstrating how logs are correlated with specific tenants. ```text 14:32:01.123 [http-nio-8080-exec-1] [acme] INFO c.e.GreetingController - Processing request 14:32:01.456 [http-nio-8080-exec-2] [beans] INFO c.e.GreetingController - Processing request ``` -------------------------------- ### Configure MariaDB Initialization Script Path Source: https://docs.arconia.io/arconia/latest/dev-services/mariadb Specify the classpath location of SQL scripts to initialize the MariaDB database when it starts. This is useful for development and testing data setup. ```properties arconia.dev.services.mariadb.init-script-paths=data/init.sql ``` -------------------------------- ### Run Application with Arconia CLI Source: https://docs.arconia.io/arconia/latest/dev-services/mongodb Start your application using the Arconia CLI. Dev Services will be managed automatically. ```shell arconia dev ``` -------------------------------- ### Configure MySQL Initialization Script Path Source: https://docs.arconia.io/arconia/latest/dev-services/mysql Specify the classpath location for SQL initialization scripts in your application configuration. This script will be executed when the MySQL database starts. ```properties arconia.dev.services.mysql.init-script-paths=data/init.sql ``` -------------------------------- ### Configure Resource Mapping for Otel Collector Source: https://docs.arconia.io/arconia/latest/dev-services Example of configuring resource mappings for a dev service. This copies a configuration file from the classpath to the container's specified path. ```yaml arconia: dev: services: otel-collector: resources: - source-path: otel-collector-config.yml container-path: /etc/otelcol-contrib/config.yaml ``` -------------------------------- ### Run Application with Maven Source: https://docs.arconia.io/arconia/latest/dev-services/mongodb Execute your Spring Boot application using Maven. The Dev Services will start automatically. ```shell ./mvnw spring-boot:run ``` -------------------------------- ### Run Application with Gradle Source: https://docs.arconia.io/arconia/latest/dev-services/mongodb Execute your Spring Boot application using Gradle. The Dev Services will start automatically. ```shell ./gradlew bootRun ``` -------------------------------- ### OpenLIT Dev Service UI URL Log Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/openlit Example log output indicating the URL for the OpenLIT UI when the Dev Service is active. ```logs ...openlit.OpenLitContainer: OpenLit UI: http://localhost: ``` -------------------------------- ### List All Dev Services Source: https://docs.arconia.io/arconia/latest/dev-services Retrieve information about all running Dev Services by accessing the /actuator/devservices endpoint. This is useful for getting an overview of your development environment. ```bash http :8080/actuator/devservices ``` -------------------------------- ### Run Arconia Upgrade Recipe with Gradle Source: https://docs.arconia.io/arconia/latest/upgrading-arconia Execute the Arconia upgrade recipe using the OpenRewrite Gradle plugin. This command applies the specified recipe to your project after the init.gradle setup. ```bash ./gradlew rewriteRun \ --init-script init.gradle \ -DactiveRecipe=io.arconia.rewrite.UpgradeArconia_0_28 ``` -------------------------------- ### Custom Tenant Resolver Implementation Source: https://docs.arconia.io/arconia/latest/multitenancy/tenant-resolution Example of implementing a custom `TenantResolver` bean. This demonstrates how to define custom logic for extracting a tenant ID from a specific context type. ```java import io.arconia.multitenancy.core.context.resolvers.TenantResolver; @Bean TenantResolver customTenantResolver() { return context -> { // Custom logic to extract tenant from the context return context.getTenantId(); }; } ``` -------------------------------- ### Configure Oracle XE Initialization Script Path Source: https://docs.arconia.io/arconia/latest/dev-services/oracle-xe Specify the classpath location of SQL scripts to be executed when the Oracle XE Dev Service starts. This is useful for seeding test data or applying development-specific configurations. ```properties arconia.dev.services.oracle-xe.init-script-paths=data/init.sql ``` -------------------------------- ### Configure Oracle DB Initialization Script Path Source: https://docs.arconia.io/arconia/latest/dev-services/oracle Specify the classpath location for SQL initialization scripts in your application.yml or application.properties file. This script will be executed when the Oracle Dev Service starts. ```properties arconia.dev.services.oracle.init-script-paths=data/init.sql ``` -------------------------------- ### Update Arconia Framework via CLI Source: https://docs.arconia.io/arconia/latest/upgrading-arconia Use the Arconia CLI to update the framework to a specific version. Ensure the Arconia CLI is installed and accessible in your PATH. ```bash arconia update framework --to-version 0.28 ``` -------------------------------- ### Get Specific Dev Service Details Source: https://docs.arconia.io/arconia/latest/dev-services Retrieve detailed information about a specific Dev Service, such as PostgreSQL, by appending its name to the /actuator/devservices endpoint. This helps in diagnosing issues with individual services. ```bash http :8080/actuator/devservices/postgresql ``` -------------------------------- ### Execute Migration with Gradle OpenRewrite Plugin Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-spring-boot Run the Gradle wrapper with the init script and specify the active recipe for migration. ```shell ./gradlew rewriteRun \ --init-script init.gradle \ -DactiveRecipe=io.arconia.rewrite.MigrateSpringBoot3OtlpToArconiaOpenTelemetry ``` -------------------------------- ### Execute Migration with Gradle OpenRewrite Plugin Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-spring-boot Run the Gradle wrapper with the init script and specify the active recipe for migration. ```shell ./gradlew rewriteRun \ --init-script init.gradle \ -DactiveRecipe=io.arconia.rewrite.MigrateSpringBoot4_0_OtlpToArconiaOpenTelemetry ``` -------------------------------- ### Configure PostgreSQL Initialization Script Path Source: https://docs.arconia.io/arconia/latest/dev-services/postgresql Specify the classpath location for SQL initialization scripts. Place scripts in `src/main/resources` for general use or `src/test/resources` for test-specific initialization. ```properties arconia.dev.services.postgresql.init-script-paths=data/init.sql ``` -------------------------------- ### Run Migration Recipe with Arconia CLI Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-spring-boot Use the Arconia CLI to execute the migration recipe for Spring Boot. ```shell arconia rewrite run \ --recipe-name io.arconia.rewrite.MigrateSpringBoot3OtlpToArconiaOpenTelemetry ``` -------------------------------- ### Configure Gradle for OpenRewrite Plugin Source: https://docs.arconia.io/arconia/latest/upgrading-arconia Set up the OpenRewrite Gradle plugin in your project's root directory by creating an init.gradle file. This configures the plugin and adds the necessary Arconia migration dependency. ```groovy initscript { repositories { maven { url "https://plugins.gradle.org/m2" } } dependencies { classpath("org.openrewrite:plugin:latest.release") } } rootProject { plugins.apply(org.openrewrite.gradle.RewritePlugin) dependencies { rewrite("io.arconia.migrations:rewrite-arconia:latest.release") } afterEvaluate { if (repositories.isEmpty()) { repositories { mavenCentral() } } } } ``` -------------------------------- ### Access Phoenix UI URL Source: https://docs.arconia.io/arconia/latest/dev-services/phoenix The application logs will display the URL to access the Arize Phoenix UI. This example shows the default format. ```text ...Phoenix UI: http://localhost: ``` -------------------------------- ### List All Dev Services Source: https://docs.arconia.io/arconia/latest/dev-services Retrieve information about all running Dev Services. This endpoint is useful for getting an overview of all active development service containers. ```APIDOC ## GET /actuator/devservices ### Description Retrieves information about all running Dev Services. ### Method GET ### Endpoint /actuator/devservices ### Response #### Success Response (200) - **docling** (object) - Information about the Docling Dev Service. - **postgresql** (object) - Information about the PostgreSQL Dev Service. ### Response Example ```json { "docling": { "name": "docling", "description": "Docling Dev Service", "containerInfo": { "id": "dbbda8272b5dc8d2ccfa48d3723756d767eef727322d9c35e0fd4c44ba60e967", "imageName": "ghcr.io/docling-project/docling-serve:latest", "exposedPorts": [ { "ip": "0.0.0.0", "privatePort": 5001, "publicPort": 45525, "type": "tcp" } ] } }, "postgresql": { "name": "postgresql", "description": "PostgreSQL Dev Service", "containerInfo": { "id": "cbf5a15cf5420eddd2daf0e912256b140c0ad067f9329f425a2ecdaa01008bc5", "imageName": "docker.io/pgvector/pgvector:latest", "exposedPorts": [ { "ip": "0.0.0.0", "privatePort": 5432, "publicPort": 36803, "type": "tcp" } ] } } } ``` ``` -------------------------------- ### Basic Docling Client Usage in Spring Source: https://docs.arconia.io/arconia/latest/integrations/docling Demonstrates how to autowire and use the DoclingServeApi in a Spring component to convert a web page. ```java @Component public class DocumentService { private final DoclingServeApi doclingClient; public DocumentService(DoclingServeApi doclingClient) { this.doclingClient = doclingClient; } public String convertWebPage(String url) { ConvertDocumentRequest request = ConvertDocumentRequest.builder() .source(HttpSource.builder().url(url).build()) .build(); InBodyConvertDocumentResponse response = (InBodyConvertDocumentResponse) doclingServeApi.convertSource(request); return response.getDocument().getMarkdownContent(); } } ``` -------------------------------- ### Get Details for a Specific Dev Service Source: https://docs.arconia.io/arconia/latest/dev-services Retrieve detailed information about a specific Dev Service by its name. This is useful for inspecting the status and configuration of an individual service. ```APIDOC ## GET /actuator/devservices/{serviceName} ### Description Retrieves detailed information about a specific Dev Service. ### Method GET ### Endpoint /actuator/devservices/postgresql ### Parameters #### Path Parameters - **serviceName** (string) - Required - The name of the Dev Service to retrieve details for (e.g., "postgresql"). ### Response #### Success Response (200) - **name** (string) - The name of the Dev Service. - **description** (string) - A description of the Dev Service. - **containerInfo** (object) - Detailed information about the service's container. - **id** (string) - The container ID. - **imageName** (string) - The Docker image name used. - **names** (array) - List of container names. - **exposedPorts** (array) - List of exposed ports. - **labels** (object) - Labels associated with the container. - **status** (string) - The current status of the container. ### Response Example ```json { "name": "postgresql", "description": "PostgreSQL Dev Service", "containerInfo": { "id": "cbf5a15cf5420eddd2daf0e912256b140c0ad067f9329f425a2ecdaa01008bc5", "imageName": "docker.io/pgvector/pgvector:latest", "names": [ "/unwritten_mithrandir" ], "exposedPorts": [ { "ip": "0.0.0.0", "privatePort": 5432, "publicPort": 36803, "type": "tcp" } ], "labels": { "org.testcontainers.lang": "java", "org.testcontainers": "true" }, "status": "Up About 67 minutes" } } ``` ``` -------------------------------- ### Run Migration Recipe with Arconia CLI Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-spring-boot Use the Arconia CLI to execute the migration recipe for Spring Boot 4.0. ```shell arconia rewrite run \ --recipe-name io.arconia.rewrite.MigrateSpringBoot4_0_OtlpToArconiaOpenTelemetry ``` -------------------------------- ### Run Application from Test Classpath Source: https://docs.arconia.io/arconia/latest/dev-services Execute your application using the Gradle bootTestRun command to include Testcontainers configurations. ```shell ./gradlew bootTestRun ``` -------------------------------- ### Run Migration with Maven OpenRewrite Plugin Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-spring-boot Execute the OpenRewrite Maven Plugin with specified recipe coordinates and active recipes for migration. ```shell ./mvnw -U org.openrewrite.maven:rewrite-maven-plugin:run \ -Drewrite.recipeArtifactCoordinates=io.arconia.migrations:rewrite-arconia:LATEST \ -Drewrite.activeRecipes=io.arconia.rewrite.MigrateSpringBoot3OtlpToArconiaOpenTelemetry ``` -------------------------------- ### Add Arconia Multitenancy Web Starter Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/multitenancy Include the Arconia Multitenancy Web Spring Boot Starter dependency for Gradle projects. ```gradle dependencies { implementation 'io.arconia:arconia-multitenancy-web-spring-boot-starter' } ``` -------------------------------- ### Add Core Starter Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/multitenancy Include the Arconia Multitenancy core starter in your Gradle project to enable foundational multitenancy features. ```gradle dependencies { implementation 'io.arconia:arconia-multitenancy-core-spring-boot-starter' } ``` -------------------------------- ### Add Arconia Multitenancy Web Starter Dependency (Maven) Source: https://docs.arconia.io/arconia/latest/multitenancy Include the Arconia Multitenancy Web Spring Boot Starter dependency for Maven projects. ```xml io.arconia arconia-multitenancy-web-spring-boot-starter ``` -------------------------------- ### Send Request with Tenant Identifier (HTTPie) Source: https://docs.arconia.io/arconia/latest/multitenancy Identify the tenant using the `X-TenantId` header with HTTPie. ```bash http :8080/api/resource X-TenantId:acme ``` -------------------------------- ### Add Core Starter Dependency (Maven) Source: https://docs.arconia.io/arconia/latest/multitenancy Include the Arconia Multitenancy core starter in your Maven project to enable foundational multitenancy features. ```xml io.arconia arconia-multitenancy-core-spring-boot-starter ``` -------------------------------- ### Converting File Sources with Docling Source: https://docs.arconia.io/arconia/latest/integrations/docling Demonstrates converting local files by encoding them as Base64. It specifies the filename and Base64 encoded content in the request. ```java byte[] fileContent = new ClassPathResource("document.pdf").getContentAsByteArray(); String base64Content = Base64.getEncoder().encodeToString(fileContent); ConvertDocumentRequest request = ConvertDocumentRequest.builder() .source(FileSource.builder() .filename("document.pdf") .base64String(base64Content) .build()) .build(); InBodyConvertDocumentResponse response = (InBodyConvertDocumentResponse) doclingClient.convertSource(request); String markdownContent = response.getDocument().getMarkdownContent(); ``` -------------------------------- ### Add Arconia OpenTelemetry Spring Boot Starter (Maven) Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/langsmith Include the Arconia OpenTelemetry Spring Boot Starter for OpenTelemetry configuration in your Maven project. ```xml io.arconia arconia-spring-boot-starter-opentelemetry ``` -------------------------------- ### Configure Build Info for Gradle Source: https://docs.arconia.io/arconia/latest/opentelemetry/resource Enable build information extraction in Gradle projects by configuring the springBoot.buildInfo block. ```groovy springBoot { buildInfo { excludes = ['time'] } } ``` -------------------------------- ### Execute Migration with Maven OpenRewrite Plugin Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-spring-boot Apply the Arconia migration recipe to your project using the Maven OpenRewrite Plugin. ```shell ./mvnw -U org.openrewrite.maven:rewrite-maven-plugin:run \ -Drewrite.recipeArtifactCoordinates=io.arconia.migrations:rewrite-arconia:LATEST \ -Drewrite.activeRecipes=io.arconia.rewrite.MigrateSpringBoot4_0_OtlpToArconiaOpenTelemetry ``` -------------------------------- ### Converting HTTP Sources with Docling Source: https://docs.arconia.io/arconia/latest/integrations/docling Shows how to convert web pages or documents from HTTP/HTTPS URLs using the Docling client. It retrieves markdown content and filename from the response. ```java ConvertDocumentRequest request = ConvertDocumentRequest.builder() .source(HttpSource.builder() .url(URI.create("https://docs.arconia.io/arconia/latest/integrations/docling/")) .build()) .build(); InBodyConvertDocumentResponse response = (InBodyConvertDocumentResponse) doclingClient.convertSource(request); String markdownContent = response.getDocument().getMarkdownContent(); String filename = response.getDocument().getFilename(); ``` -------------------------------- ### Enable OS Resource Contributor Source: https://docs.arconia.io/arconia/latest/opentelemetry/resource Enable the OS Resource Contributor by setting 'os.enabled' to true in the configuration. ```yaml arconia: otel: resource: contributors: os: enabled: true ``` -------------------------------- ### TenantDetailsService Interface Source: https://docs.arconia.io/arconia/latest/multitenancy/tenant-details Defines the contract for loading tenant information. Implement this interface to provide custom logic for retrieving tenant details. ```java public interface TenantDetailsService { List loadAllTenants(); TenantDetails loadTenantByIdentifier(String identifier); } ``` -------------------------------- ### Add Arconia OpenTelemetry Spring Boot Starter (Gradle) Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/langsmith Include the Arconia OpenTelemetry Spring Boot Starter for OpenTelemetry configuration in your Gradle project. ```gradle dependencies { implementation 'io.arconia:arconia-spring-boot-starter-opentelemetry' } ``` -------------------------------- ### Configure OTLP Exporter using Environment Variables Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/openlit Configure the OTLP exporter endpoint and headers using standard OpenTelemetry environment variables. ```env OTEL_EXPORTER_OTLP_ENDPOINT=https:// OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer " ``` -------------------------------- ### Create Test Application Runner Source: https://docs.arconia.io/arconia/latest/dev-services Set up a test main class to run the Spring application with the Testcontainers configuration integrated. ```java public class TestApplication { public static void main(String[] args) { SpringApplication.from(Application::main) .with(TestContainersConfiguration.class) .run(args); } } ``` -------------------------------- ### Customizing Conversion Options with Docling Source: https://docs.arconia.io/arconia/latest/integrations/docling Illustrates how to customize the document conversion process using ConvertDocumentOptions, such as including images or enabling OCR. The options are applied to the conversion request. ```java ConvertDocumentOptions options = ConvertDocumentOptions.builder() .includeImages(true) .doOcr(true) .build(); ConvertDocumentRequest request = ConvertDocumentRequest.builder() .source(HttpSource.builder() .url(URI.create("https://docs.arconia.io/arconia/latest/integrations/docling/")) .build()) .options(options) .build(); ConvertDocumentResponse response = doclingClient.convertSource(request); ``` -------------------------------- ### Add Arconia Docling Spring Boot Starter (Maven) Source: https://docs.arconia.io/arconia/latest/integrations/docling Include the Arconia Docling Spring Boot Starter dependency using Maven to add Docling support to your Spring Boot application. ```xml io.arconia arconia-docling-spring-boot-starter ``` -------------------------------- ### Add Arconia OpenTelemetry Spring Boot Starter Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-opentelemetry Include the Arconia OpenTelemetry Spring Boot Starter dependency in your Gradle project. This also sets up dependency management using the Arconia BOM. ```gradle dependencies { implementation 'io.arconia:arconia-opentelemetry-spring-boot-starter' } dependencyManagement { imports { mavenBom "io.arconia:arconia-bom:0.28.0" } } ``` -------------------------------- ### Configure OTLP Exporter for LangSmith (Environment Variables) Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/langsmith Alternatively, configure the OTLP exporter using standard OpenTelemetry environment variables. Replace '' with your actual key. ```env OTEL_EXPORTER_OTLP_ENDPOINT=https://eu.api.smith.langchain.com/otel OTEL_EXPORTER_OTLP_HEADERS="x-api-key=" ``` -------------------------------- ### Add Arconia OpenTelemetry Spring Boot Starter Dependency (Maven) Source: https://docs.arconia.io/arconia/latest/opentelemetry/migration/migration-opentelemetry Include the Arconia OpenTelemetry Spring Boot Starter dependency in your Maven project. This also sets up dependency management using the Arconia BOM. ```xml io.arconia arconia-opentelemetry-spring-boot-starter io.arconia arconia-bom 0.28.0 pom import ``` -------------------------------- ### Configure OTLP Exporter using Environment Variables Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/openinference Alternatively, configure the OTLP exporter endpoint and headers using standard OpenTelemetry environment variables. ```env OTEL_EXPORTER_OTLP_ENDPOINT=https:// OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer " ``` -------------------------------- ### Run Arconia Upgrade Recipe with Maven Source: https://docs.arconia.io/arconia/latest/upgrading-arconia Apply the Arconia upgrade recipe to your project using the OpenRewrite Maven plugin. This command specifies the recipe artifact coordinates and the active recipe to run. ```bash ./mvnw -U org.openrewrite.maven:rewrite-maven-plugin:run \ -Drewrite.recipeArtifactCoordinates=io.arconia.migrations:rewrite-arconia:LATEST \ -Drewrite.activeRecipes=io.arconia.rewrite.UpgradeArconia_0_28 ``` -------------------------------- ### Send Request with Tenant Identifier (curl) Source: https://docs.arconia.io/arconia/latest/multitenancy Identify the tenant using the `X-TenantId` header with curl. ```bash curl -H "X-TenantId: acme" http://localhost:8080/api/resource ``` -------------------------------- ### Add Arconia Docling Spring Boot Starter (Gradle) Source: https://docs.arconia.io/arconia/latest/integrations/docling Include the Arconia Docling Spring Boot Starter dependency using Gradle to add Docling support to your Spring Boot application. ```gradle dependencies { implementation 'io.arconia:arconia-docling-spring-boot-starter' } ``` -------------------------------- ### Enable Host Resource Contributor Source: https://docs.arconia.io/arconia/latest/opentelemetry/resource Enable the Host Resource Contributor by setting 'host.enabled' to true in the configuration. ```yaml arconia: otel: resource: contributors: host: enabled: true ``` -------------------------------- ### Custom TenantDetailsService Implementation Source: https://docs.arconia.io/arconia/latest/multitenancy/tenant-details Implement the TenantDetailsService interface to manage tenants dynamically, such as loading them from a database. Register this as a Spring bean. ```java import io.arconia.multitenancy.core.tenantdetails.TenantDetails; import io.arconia.multitenancy.core.tenantdetails.TenantDetailsService; @Bean TenantDetailsService tenantDetailsService(TenantRepository tenantRepository) { return new TenantDetailsService() { @Override public List loadAllTenants() { return tenantRepository.findAll(); } @Override public TenantDetails loadTenantByIdentifier(String identifier) { return tenantRepository.findByIdentifier(identifier); } }; } ``` -------------------------------- ### Enable Java Resource Contributor Source: https://docs.arconia.io/arconia/latest/opentelemetry/resource Enable the Java Resource Contributor by setting 'java.enabled' to true in the configuration. ```yaml arconia: otel: resource: contributors: java: enabled: true ``` -------------------------------- ### Configure PostgreSQL Volume Mapping Source: https://docs.arconia.io/arconia/latest/dev-services Mounts a host directory to a container path for persistent data storage in a PostgreSQL Dev Service. ```yaml arconia: dev: services: postgresql: volumes: - host-path: ./postgresql/data container-path: /var/lib/postgresql/data/pgdata ``` -------------------------------- ### Customize OpenTelemetry MeterProvider Source: https://docs.arconia.io/arconia/latest/opentelemetry/metrics Implement this interface to customize the auto-configured SdkMeterProvider instance programmatically. ```java @FunctionalInterface public interface OpenTelemetryMeterProviderBuilderCustomizer { void customize(SdkMeterProviderBuilder builder); } ``` -------------------------------- ### Configure Console Log Pattern with Tenant ID Source: https://docs.arconia.io/arconia/latest/multitenancy/observability Include the tenant identifier in your console log pattern by specifying the MDC key. This allows for tenant-specific log filtering. ```yaml logging: pattern: console: "%d{HH:mm:ss.SSS} [%thread] [%X{tenantId}] %-5level %logger{36} - %msg%n" ``` -------------------------------- ### Configure OTLP Exporter for Traceloop (Environment Variables) Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/openllmetry Alternatively, configure the OTLP exporter for Traceloop using standard OpenTelemetry environment variables. ```env OTEL_EXPORTER_OTLP_ENDPOINT=https://api.traceloop.com OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer " ``` -------------------------------- ### Add Arconia OpenInference AI Semantic Conventions Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/openinference Include the Arconia OpenInference AI Semantic Conventions library in your project using Gradle. ```gradle dependencies { implementation 'io.arconia:arconia-openinference-ai-semantic-conventions' } ``` -------------------------------- ### Configure OTLP Exporter for Hosted OpenLIT Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/openlit Configure the OTLP exporter endpoint and headers for sending telemetry to a hosted OpenLIT instance. ```properties arconia.otel.exporter.otlp.endpoint=https:// arconia.otel.exporter.otlp.headers=Authorization=Bearer ${OPENLIT_API_KEY} ``` -------------------------------- ### TenantDetails Interface Source: https://docs.arconia.io/arconia/latest/multitenancy/tenant-details Represents the core information about a tenant, including its identifier, enabled status, and optional attributes. ```java public interface TenantDetails { String identifier(); boolean enabled(); default Map attributes() { return Map.of(); } } ``` -------------------------------- ### Add Database Micrometer Dependencies (Gradle) Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/opentelemetry Include these dependencies in your Gradle project to enable database semantic conventions. ```groovy dependencies { implementation 'net.ttddyy.observation:datasource-micrometer-spring-boot' implementation 'net.ttddyy.observation:datasource-micrometer-opentelemetry' } ``` -------------------------------- ### Nested Tenant Context Scopes Source: https://docs.arconia.io/arconia/latest/multitenancy/tenant-context Demonstrates how nested scopes can rebind to different tenants. The outer binding is automatically restored when the inner scope concludes. ```java TenantContext.where("acme").run(() -> { // TenantContext.getTenantIdentifier() returns "acme" TenantContext.where("beans").run(() -> { // TenantContext.getTenantIdentifier() returns "beans" }); // TenantContext.getTenantIdentifier() returns "acme" again }); ``` -------------------------------- ### Add OpenLit Dev Service Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/dev-services/openlit Include the OpenLit Dev Service dependency for testing and development using Gradle. ```gradle dependencies { testAndDevelopmentOnly "io.arconia:arconia-dev-services-openlit" } ``` -------------------------------- ### Add PostgreSQL Dev Service Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/dev-services/postgresql Include the PostgreSQL Dev Service dependency for testing and development using Gradle. ```gradle dependencies { testAndDevelopmentOnly "io.arconia:arconia-dev-services-postgresql" } ``` -------------------------------- ### Add PostgreSQL Dev Service Dependency (Maven) Source: https://docs.arconia.io/arconia/latest/dev-services/postgresql Include the PostgreSQL Dev Service dependency for testing and development using Maven. ```xml io.arconia arconia-dev-services-postgresql runtime true ``` -------------------------------- ### Enable/Disable All Resource Attributes Source: https://docs.arconia.io/arconia/latest/opentelemetry/resource Use the 'all' key to enable or disable all resource attributes at once through configuration properties. ```yaml arconia: otel: resource: enable: all: false ``` -------------------------------- ### Programmatic Tracer Provider Customization Source: https://docs.arconia.io/arconia/latest/opentelemetry/traces Implement this interface to customize the auto-configured SdkTracerProvider instance programmatically. ```java @FunctionalInterface public interface OpenTelemetryTracerProviderBuilderCustomizer { void customize(SdkTracerProviderBuilder builder); } ``` -------------------------------- ### Tenant Record Builder Source: https://docs.arconia.io/arconia/latest/multitenancy/tenant-details A default implementation of TenantDetails using a builder pattern for easy construction. Use this to create tenant objects with specific identifiers, enabled status, and attributes. ```java var tenant = Tenant.builder() .identifier("acme") .enabled(true) .addAttribute("plan", "premium") .build(); ``` -------------------------------- ### Add Docling Dev Service Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/dev-services/docling Include the Docling Dev Service dependency for testing and development using Gradle. ```gradle dependencies { testAndDevelopmentOnly "io.arconia:arconia-dev-services-docling" } ``` -------------------------------- ### Add Kafka Dev Service Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/dev-services/kafka Include the Arconia Kafka Dev Service dependency for development and testing using Gradle. ```gradle dependencies { testAndDevelopmentOnly "io.arconia:arconia-dev-services-kafka" } ``` -------------------------------- ### Add OpenLit Dev Service Dependency (Maven) Source: https://docs.arconia.io/arconia/latest/dev-services/openlit Include the OpenLit Dev Service dependency for runtime and development purposes using Maven. ```xml io.arconia arconia-dev-services-openlit runtime true ``` -------------------------------- ### Add Database Micrometer Dependencies (Maven) Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/opentelemetry Include these dependencies in your Maven project to enable database semantic conventions. ```xml net.ttddyy.observation datasource-micrometer-spring-boot net.ttddyy.observation datasource-micrometer-opentelemetry ``` -------------------------------- ### Add RabbitMQ Dev Service Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/dev-services/rabbitmq Include the Arconia RabbitMQ Dev Service dependency for test and development purposes using Gradle. ```gradle dependencies { testAndDevelopmentOnly "io.arconia:arconia-dev-services-rabbitmq" } ``` -------------------------------- ### Configure OTLP Exporter for Arize Phoenix Source: https://docs.arconia.io/arconia/latest/observability/semantic-conventions/openinference Set the OTLP exporter endpoint and authorization headers for sending traces to a hosted Arize Phoenix instance. ```properties arconia.otel.exporter.otlp.endpoint=https:// arconia.otel.exporter.otlp.headers=Authorization=Bearer ${PHOENIX_API_KEY} ``` -------------------------------- ### Enable Process Resource Contributor Source: https://docs.arconia.io/arconia/latest/opentelemetry/resource Enable the Process Resource Contributor by setting 'process.enabled' to true in the configuration. ```yaml arconia: otel: resource: contributors: process: enabled: true ``` -------------------------------- ### Add RabbitMQ Dev Service Dependency (Maven) Source: https://docs.arconia.io/arconia/latest/dev-services/rabbitmq Include the Arconia RabbitMQ Dev Service dependency for runtime and optional use with Maven. ```xml io.arconia arconia-dev-services-rabbitmq runtime true ``` -------------------------------- ### Add Arconia Spring Boot Starter Dependency (Gradle) Source: https://docs.arconia.io/arconia/latest/core-features Use this snippet to add the Arconia Spring Boot Starter to your Gradle project. This is the primary dependency for integrating Arconia's core features. ```gradle dependencies { implementation 'io.arconia:arconia-spring-boot-starter' } ``` -------------------------------- ### Add Spring Data JDBC and Arconia SQLite Dependencies (Maven) Source: https://docs.arconia.io/arconia/latest/data/jdbc-sqlite Include the necessary Spring Boot Starter for Spring Data JDBC and the Arconia Data JDBC SQLite module in your Maven project. ```xml org.springframework.boot spring-boot-starter-data-jdbc io.arconia arconia-data-jdbc-sqlite ``` -------------------------------- ### Error Handling for Docling Client Operations Source: https://docs.arconia.io/arconia/latest/integrations/docling Shows how to handle potential runtime exceptions during Docling Serve API calls, including specific client and server errors. It logs warnings or errors based on the exception type. ```java try { ConvertDocumentRequest request = ConvertDocumentRequest.builder() .source(HttpSource.builder() .url(URI.create("https://invalid-url.com/document.pdf")) .build()) .build(); ConvertDocumentResponse response = doclingClient.convertSource(request); } catch (HttpClientErrorException.NotFound ex) { log.warn("Document not found: {}", ex.getMessage()); } catch (HttpClientErrorException ex) { log.error("Client error during conversion: {}", ex.getMessage()); } catch (HttpServerErrorException ex) { log.error("Server error during conversion: {}", ex.getMessage()); } ``` -------------------------------- ### Add MariaDB Dev Service Dependency (Maven) Source: https://docs.arconia.io/arconia/latest/dev-services/mariadb Include this Maven dependency for runtime use of the MariaDB Dev Service. ```xml io.arconia arconia-dev-services-mariadb runtime true ``` -------------------------------- ### OpenLit UI Access Log Source: https://docs.arconia.io/arconia/latest/dev-services/openlit This log message indicates the URL where you can access the OpenLit UI. The port will be dynamically assigned. ```log ...i.a.t.openlit.OpenLitContainer : OpenLit UI: http://localhost: ```