> ## Documentation Index
> Fetch the complete documentation index at: https://holder.docs.fiskil.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Logs

> View and export Data Provider request logs via the Console or forward to your SIEM/observability tools.

Request Logs give you visibility into every call made through your Data Provider. They are essential for:

* Debugging integration issues
* Auditing consented data access
* Monitoring performance and latency
* Forwarding events into your SIEM or observability stack

***

## Log Structure

Fiskil exports logs with the following structure. Note that this structure may evolve in future versions.

* `request_id` — Request identifier (string)
* `consent_id` — Consent ID / CDR arrangement ID (string)
* `fapi_interaction_id` — FAPI interaction ID (string)
* `account_id` — Canonical identifier for the account, if applicable (string)
* `customer_id` — Identifier for the customer, if applicable (string)
* `app_name` — ADR client name requesting data (string)
* `level` — Severity level: "ERROR", "WARN", or "INFO" (string)
* `error_reason` — Human-readable description for error reason (string)
* `status_code` — HTTP status code of the request (number)
* `route_pattern` — Request route pattern for API endpoint accessed (string)
* `path` — Request path for API endpoint accessed (string)
* `query` — HTTP request query parameters (string)
* `method` — HTTP request method (string)
* `latency_ms` — Time taken for the request in milliseconds (number)
* `ip` — IPv4 address of the request origin (string)
* `response_body_size` — HTTP response body size in bytes (number)
* `timestamp` — ISO 8601 timestamp of the request (string)
* `trace_id` — Fiskil internal trace identifier (string)

***

## Viewing Logs in the Console

Access real-time request logs directly in the [Fiskil Console](https://console.fiskil.com/logs) for immediate debugging and monitoring.

<Note>
  The request logs interface provides filtering options and log entry visualization for immediate debugging and monitoring.
</Note>

### Filtering and Search

The Console provides powerful filtering capabilities to help you find specific requests quickly:

* **Customer ID** — Filter by specific customer identifiers
* **Consent ID** — View logs for specific consent arrangements
* **Route** — Filter by API endpoint patterns
* **Time range** — Narrow down to specific time periods
* **HTTP status** — Focus on errors, successes, or specific response codes
* **HTTP method** — Filter by GET, POST, PUT, DELETE operations

### Detailed Log View

Click on any individual log entry to expand and view comprehensive details including:

* ADR application name and metadata
* Internal trace ID for debugging
* Associated account IDs
* Request and response timing
* Complete error context when applicable

<Tip>
  Use the expanded log view to quickly identify integration issues and trace request flows through your system.
</Tip>

***

## Log Drains

**Log Drains** are a powerful feature that automatically forwards your Data Provider request logs to external observability and SIEM tools. This enables you to:

* Integrate logs into your existing monitoring infrastructure
* Set up automated alerting and analysis
* Maintain centralized log storage and retention policies
* Perform advanced analytics across your entire tech stack

### How Log Drains Work

Configure [Log Drains](https://console.fiskil.com/settings/log-drains) in the Console to create a real-time stream of log events from your Data Provider to your chosen destination.

### Supported Destinations

<CardGroup cols={2}>
  <Card title="Azure Monitor" icon="microsoft">
    **Application Insights** — Stream logs directly to Azure's monitoring platform with full KQL query support.
  </Card>

  <Card title="Elasticsearch" icon="magnifying-glass">
    **Data Streams** — Forward logs to your Elasticsearch cluster as structured data streams.
  </Card>
</CardGroup>

<Info>
  Need integration with a different observability tool? Contact [support](https://fiskil.atlassian.net/servicedesk/customer/portal/6/group/23/create/93) to discuss custom integrations.
</Info>

***

## Setting Up Log Drains

### Azure Monitor Configuration

Logs are delivered to Azure via Application Insights. Steps:

<Steps>
  <Step>Create a new application in Azure Monitor Application Insights</Step>
  <Step>Copy the "Connection String"</Step>
  <Step>Go to the Log Drain settings in the Fiskil Console</Step>
  <Step>Click the Azure card</Step>
  <Step>Enter your connection string</Step>
  <Step>Save your log drain</Step>
</Steps>

It may take a few minutes for logs to appear in Azure.
The log attributes are in `customDimensions` of the record, and you can query them with [KQL](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/log-query-overview).

***

### Elasticsearch Configuration

Logs are delivered to Elasticsearch as a data stream. Authentication requires an API key.

<Steps>
  <Step>
    Create an API Key with privileges:

    ```json theme={null}
    PUT /_security/api_key
    {
        "name": "fiskil-ingest",
        "role_descriptors": {
            "logs_fiskil_holder_ingest_role": {
                "index": [
                    {
                        "names": ["logs-fiskil-holder"],
                        "privileges": ["write"]
                    }
                ]
            }
        }
    }
    ```
  </Step>

  <Step>Go to Log Drain settings in the Console</Step>
  <Step>Click the Elasticsearch card</Step>
  <Step>Enter your cluster endpoint and encoded API Key</Step>
  <Step>Save your log drain</Step>
</Steps>

It may take a few minutes for logs to begin streaming into your Elasticsearch cluster.
