Configuration reference¶
Every tunable across the three configurable components: the collector notebook, the WinForms app, and the deploy script.
Collector notebook (FDA_Collector.py)¶
Set in the # %% [parameters] cell, or overridden via the Fabric Parameters cell / pipeline.
Identity (service principal)¶
| Parameter | Default | Description |
|---|---|---|
TENANT_ID |
<tenant-guid> |
Entra tenant GUID |
CLIENT_ID |
<collector-app-client-id> |
Collector app registration client id |
KEY_VAULT_URI |
https://<your-kv>.vault.azure.net/ |
Key Vault holding the client secret |
CLIENT_SECRET_NAME |
fda-collector-secret |
Secret name in Key Vault |
CLIENT_SECRET_INLINE |
"" |
Inline secret — prototype only, leave empty in production |
Never hardcode the secret
In production, store the secret in a workspace Key Vault and fetch via notebookutils.credentials.getSecret.
CLIENT_SECRET_INLINE exists only for a quick local prototype. Outside Fabric, the collector reads
FDA_CLIENT_SECRET from the environment.
Destination Eventhouse¶
| Parameter | Default | Description |
|---|---|---|
EH_QUERY_URI |
https://<cluster>.<region>.kusto.fabric.microsoft.com |
Observability Eventhouse Query URI |
EH_INGEST_URI |
"" |
Optional; if blank, derived as https://ingest-<cluster>… |
EH_DATABASE |
FDA_Observability_EH |
KQL database name |
Workspace monitoring (source C)¶
| Parameter | Default | Description |
|---|---|---|
MON_QUERY_URI |
https://<mon-cluster>.<region>.kusto.fabric.microsoft.com |
Monitoring KQL DB Query URI |
MON_DATABASE |
Monitoring KQL Database |
Monitoring database name |
SEMANTIC_MODEL_IDS |
[] |
Optional allow-list of semantic model ItemIds to keep |
Graph export (source A)¶
| Parameter | Default | Description |
|---|---|---|
FDA_USERS |
[] |
Explicit list of UPNs or object ids |
FDA_USER_GROUP_ID |
"" |
Entra group object id; transitive members are expanded into the user set |
GRAPH_APP_CLASSES |
BizChat / WebChat / Teams Copilot classes | App-class allow-list for Graph rows |
Choosing the user set
Set FDA_USERS to an explicit list or FDA_USER_GROUP_ID to a group (members expanded automatically,
de-duplicated, paged). If both are set they are merged. Putting your FDA end users in a security group keeps the
set current without redeploying the notebook.
Behaviour¶
| Parameter | Default | Description |
|---|---|---|
LOOKBACK_HOURS |
48 |
Trailing re-scan window (covers late audit/Graph records) |
CORR_WINDOW_SEC |
90 |
DAX ↔ interaction match tolerance (± seconds) — see correlation |
AGENT_NAME_FILTER |
"" |
Optional: only keep audit rows whose agent matches |
USE_QUEUED_INGESTION |
True |
True = queued ingestion (scales); False = inline management ingest |
There is also an internal INGEST_QUEUED_THRESHOLD = 200: batches at/above this row count use queued ingestion
regardless of the toggle.
WinForms app (AppConfig)¶
Persisted to %APPDATA%\FdaObservability\config.json (no secrets — interactive AAD only). Seeded on first run from
appsettings.sample.json
if present. Edit via the in-app Configuration dialog.
| Field | Default | Description |
|---|---|---|
TenantId |
"" |
Entra tenant GUID |
ClientId |
"" |
Public client app registration (the review app) |
EventhouseQueryUri |
"" |
https://<cluster>.<region>.kusto.fabric.microsoft.com |
Database |
FDA_Observability_EH |
KQL database |
CapacityId |
"" |
Scope: Fabric capacity |
WorkspaceId |
"" |
Scope: workspace GUID |
WorkspaceName |
"" |
Scope: workspace display name |
AgentId |
"" |
Scope: FDA agent id (used as the search agent filter) |
AgentName |
"" |
Scope: FDA agent display name |
DefaultLookbackDays |
7 |
Default time window in the review grid |
MaxRows |
1000 |
Row cap passed to SearchFdaInteractions |
IsComplete (which gates the first-run Configuration dialog) requires TenantId, ClientId,
EventhouseQueryUri, and Database.
Deploy script (Deploy-FdaObservability.ps1)¶
Parameters are documented on the Deploy page.
Shared core and headless surfaces¶
The REST API, MCP server, and CLI share FdaObservability.Core and read the same settings. Provide them via
configuration or environment variables.
| Setting | Env (API) | Env (MCP / CLI) | Default | Description |
|---|---|---|---|---|
| Eventhouse Query URI | FdaObservability__EventhouseQueryUri |
FDA_EVENTHOUSE_URI |
— | https://<cluster>.<region>.kusto.fabric.microsoft.com |
| Database | FdaObservability__Database |
FDA_DATABASE |
FDA_Observability_EH |
KQL database |
| Default lookback (days) | FdaObservability__DefaultLookbackDays |
— | 7 |
Window when from is omitted |
| Max rows | FdaObservability__MaxRows |
— | 1000 |
Search row cap |
| API key (API only) | Api__ApiKey |
— | (empty) | When set, requires X-Api-Key; when empty the API is open |
The CLI also accepts --cluster / --database flags (which override the environment). All three authenticate to
the Eventhouse with DefaultAzureCredential — set AZURE_TENANT_ID / AZURE_CLIENT_ID /
AZURE_CLIENT_SECRET for a service principal, rely on managed identity in Azure, or az login locally. See
Programmatic access.
SDK replay notebook (FDA_SDK_Replay.py)¶
| Parameter | Default | Description |
|---|---|---|
DATA_AGENT_NAME |
<your-published-data-agent> |
Published Fabric Data Agent to replay against |
SAMPLE_FROM |
Raw_GraphInteractions |
Source of questions to replay (or a curated CSV) |
EH_QUERY_URI |
https://<cluster>.<region>.kusto.fabric.microsoft.com |
Eventhouse Query URI |
EH_DATABASE |
FDA_Observability_EH |
KQL database |
SAMPLE_SIZE |
50 |
Number of recent questions to replay |