Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Configuratie-instellingen die het runtimegedrag bepalen.
Instellingen voor paginering
| Property | Default | Description |
|---|---|---|
| runtime.pagination.max-paginaformaat | Definieert maximumrecords per pagina | |
| runtime.pagtion.default-page-size | Hiermee stelt u standaardrecords per antwoord in |
REST-instellingen
| Property | Default | Description |
|---|---|---|
| runtime.rest.path | "/api" |
Basispad voor REST-eindpunten |
| runtime.rest.enabled | true |
Hiermee staat u het in- of uitschakelen van REST-aanvragen voor alle entiteiten toe |
| runtime.rest.request-body-strict | true |
Niet-overbodige velden in aanvraagtekst wanneer waar is |
GraphQL-instellingen
| Property | Default | Description |
|---|---|---|
| runtime.graphql.allow-introspection | true |
Hiermee kunt u query's uitvoeren op het onderliggende GraphQL-schema |
| runtime.graphql.path | "/graphql" |
Basispad voor het GraphQL-eindpunt |
| runtime.graphql.enabled | true |
Hiermee staat u het in- of uitschakelen van GraphQL-aanvragen voor alle entiteiten toe |
| runtime.graphql.depth-limit | null |
Maximale toegestane diepte van een GraphQL-query |
| runtime.graphql.multiple-mutaties.create.enabled | false |
Maakt meervoudige mutaties mogelijk voor alle entiteiten |
Hostinstellingen
| Property | Default | Description |
|---|---|---|
| runtime.host.max-response-size-mb | 158 |
Maximale grootte (MB) van het databaseantwoord dat is toegestaan in één resultaat |
| runtime.host.mode | "production" |
Actieve modus; "production" of "development" |
CORS-instellingen
| Property | Default | Description |
|---|---|---|
| runtime.host.cors.origins | [] |
Toegestane CORS-oorsprongen |
| runtime.host.cors.allow-credentials | false |
Hiermee stelt u de waarde in voor Access-Control-Allow-Credentials header |
Verificatie-instellingen
| Property | Default | Description |
|---|---|---|
| runtime.host.authentication.provider | null |
Verificatieprovider |
| runtime.host.authentication.jwt.audience | null |
JWT-doelgroep |
| runtime.host.authentication.jwt.issuer | null |
JWT-uitgever |
Cache-instellingen
| Property | Default | Description |
|---|---|---|
| runtime.cache.enabled | false |
Hiermee schakelt u het opslaan van antwoorden globaal in de cache in |
| runtime.cache.ttl-seconds | 5 |
Time to live (seconden) voor globale cache |
Telemetrie-instellingen
| Property | Default | Description |
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null |
Application Insights-verbindingsreeks |
| runtime.telemetry.application-insights.enabled | false |
Application Insights-telemetrie in- of uitschakelen |
| runtime.telemetry.open-telemetry.endpoint | null |
Url van openTelemetry-collector |
| runtime.telemetry.open-telemetry.headers | {} |
OpenTelemetry-exportheaders |
| runtime.telemetry.open-telemetry.service-name | "dab" |
OpenTelemetry-servicenaam |
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" |
OpenTelemetry-protocol ('grpc' of 'httpprotobuf') |
| runtime.telemetry.open-telemetry.enabled | true |
OpenTelemetry in- of uitschakelen |
| runtime.telemetry.log-level.namespace | null |
Naamruimtespecifieke overschrijving op logboekniveau |
| runtime.health.enabled | true |
Hiermee schakelt u het eindpunt van de statuscontrole globaal in of uit |
| runtime.health.roles | null |
Toegestane rollen voor het uitgebreide statuseindpunt |
| runtime.health.cache-ttl-seconds | 5 |
Time to live (seconden) voor de cachevermelding voor statuscontrolerapport |
| runtime.health.max-queryparallelisme | 4 |
Maximum aantal query's voor gelijktijdige statuscontrole (bereik: 1-8) |
Overzicht van opmaak
{
"runtime": {
"pagination": {
"max-page-size": <integer|null> (default: `100000`),
"default-page-size": <integer|null> (default: `100`)
},
"rest": {
"path": <string> (default: "/api"),
"enabled": <true>|<false>,
"request-body-strict": <true>|<false> (default: `true`)
},
"graphql": {
"path": <string> (default: "/graphql"),
"enabled": <true>|<false>,
"allow-introspection": <true>|<false>,
"depth-limit": <integer|null> (default: `null`),
"multiple-mutations": {
"create": {
"enabled": <true>|<false> (default: `false`)
}
}
},
"host": {
"mode": <"production"> (default) | <"development">,
"max-response-size-mb": <integer|null> (default: `158`),
"cors": {
"origins": [ "<string>" ],
"allow-credentials": <true>|<false> (default: `false`)
},
"authentication": {
"provider": <string> (default: "AppService"),
"jwt": {
"audience": "<string>",
"issuer": "<string>"
}
}
}
},
"cache": {
"enabled": <true>|<false> (default: `false`),
"ttl-seconds": <integer> (default: `5`)
},
"telemetry": {
"application-insights": {
"connection-string": "<string>",
"enabled": <true>|<false> (default: `true`)
},
"open-telemetry": {
"endpoint": "<string>",
"headers": "<string>",
"service-name": <string> (default: "dab"),
"exporter-protocol": <"grpc"> (default) | <"httpprotobuf">,
"enabled": <true>|<false> (default: `true`)
},
"log-level": {
// namespace keys
"<namespace>": <"trace"|"debug"|"information"|"warning"|"error"|"critical"|"none"|null>
}
},
"health": {
"enabled": <true>|<false> (default: `true`),
"roles": [ "<string>" ],
"cache-ttl-seconds": <integer> (default: `5`),
"max-query-parallelism": <integer> (default: `4`)
}
}
Modus (hostruntime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
host |
enum (production | development) |
❌ Nee | production |
Ontwikkelingsgedrag
- Nitro (voorheen Banana Cake Pop) ingeschakeld voor GraphQL-tests
- Swagger UI ingeschakeld voor REST-tests
- Anonieme statuscontroles ingeschakeld
- Uitgebreide logboekregistratie (foutopsporing)
Format
{
"runtime": {
"host": {
"mode": "production" (default) | "development"
}
}
}
Maximale antwoordgrootte (hostruntime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
max-response-size-mb |
integer | ❌ Nee | 158 |
Hiermee stelt u de maximale grootte (in megabytes) in voor elk gegeven resultaat. Omdat grote reacties het systeem kunnen belasten, max-response-size-mb wordt de totale grootte (afgezien van het aantal rijen) om overbelasting te voorkomen, wat vooral geldt voor grote kolommen, zoals tekst of JSON.
| Value | Result |
|---|---|
| niet ingesteld | Standaard gebruiken |
null |
Standaard gebruiken |
integer |
Een positief 32-bits geheel getal |
<= 0 |
Niet ondersteund |
Format
{
"runtime": {
"host": {
"max-response-size-mb": <integer; default: 158>
}
}
}
GraphQL (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
graphql |
object | ❌ Nee | - |
Globale GraphQL-configuratie.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.graphql |
enabled |
boolean | ❌ Nee | None |
runtime.graphql |
path |
string | ❌ Nee | "/graphql" |
runtime.graphql |
depth-limit |
integer | ❌ Nee | Geen (onbeperkt) |
runtime.graphql |
allow-introspection |
boolean | ❌ Nee | True |
runtime.graphql |
multiple-mutations.create.enabled |
boolean | ❌ Nee | False |
Opmerkingen bij eigenschappen
- Subpaden zijn niet toegestaan voor de
patheigenschap. - Gebruik
depth-limitdit om geneste query's te beperken. - Ingesteld
allow-introspectionomfalsehet GraphQL-schema te verbergen. - Gebruik
multiple-mutationsdit om meerdere entiteiten in één mutatie in te voegen.
Format
{
"runtime": {
"graphql": {
"enabled": <true> (default) | <false>
"depth-limit": <integer|null> (default: `null`),
"path": <string> (default: /graphql),
"allow-introspection": <true> (default) | <false>,
"multiple-mutations": {
"create": {
"enabled": <true> (default) | <false>
}
}
}
}
Voorbeeld: meerdere mutaties
Configuration
{
"runtime": {
"graphql": {
"multiple-mutations": {
"create": {
"enabled": true
}
}
}
},
"entities": {
"User": {
"source": "dbo.Users",
"permissions": [
{
"role": "anonymous",
"actions": ["create"] // entity permissions are required
}
]
}
}
}
GraphQL mutatie
mutation {
createUsers(input: [
{ name: "Alice", age: 30, isAdmin: true },
{ name: "Bob", age: 25, isAdmin: false },
{ name: "Charlie", age: 35, isAdmin: true }
]) {
id
name
age
isAdmin
}
}
REST (uitvoeringstijd)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
rest |
object | ❌ Nee | - |
Globale REST-configuratie.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.rest |
enabled |
boolean | ❌ Nee | None |
runtime.rest |
path |
string | ❌ Nee | "/api" |
runtime.rest |
request-body-strict |
boolean | ❌ Nee | True |
Opmerkingen bij eigenschappen
- Als globaal
enabledhet geval isfalse, maakt het niet uit op het niveau vanenabledafzonderlijke entiteiten. - De
patheigenschap biedt geen ondersteuning voor subpadwaarden zoals/api/data. -
request-body-strictis geïntroduceerd om .NET POCO-objecten te vereenvoudigen.
request-body-strict |
Behavior |
|---|---|
true |
Extra velden in de hoofdtekst van de aanvraag veroorzaken een BadRequest uitzondering. |
false |
Extra velden in de hoofdtekst van de aanvraag worden genegeerd. |
Format
{
"runtime": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string> (default: /api),
"request-body-strict": <true> (default) | <false>
}
}
}
Voorbeeld: aanvraag-body-strict
- Kolommen met een
default()waarde worden alleen genegeerdINSERTwanneer hun waarde in de nettolading isnull. Als gevolg hiervanINSERTkunnen bewerkingen indefault()kolommen, wanneerrequest-body-strictdat wel istrue, niet resulteren in explicietenullwaarden. Om dit gedrag te bereiken, is eenUPDATEbewerking vereist. - Kolommen met een
default()kolom worden niet genegeerd,UPDATEongeacht de nettoladingwaarde. - Berekende kolommen worden altijd genegeerd.
- Automatisch gegenereerde kolommen worden altijd genegeerd.
Voorbeeldtabel
CREATE TABLE Users (
Id INT PRIMARY KEY IDENTITY, -- auto-generated column
Name NVARCHAR(50) NOT NULL,
Age INT DEFAULT 18, -- column with default
IsAdmin BIT DEFAULT 0, -- column with default
IsMinor AS IIF(Age <= 18, 1, 0) -- computed column
);
Nettolading aanvragen
{
"Id": 999,
"Name": "Alice",
"Age": null,
"IsAdmin": null,
"IsMinor": false,
"ExtraField": "ignored"
}
Gedrag invoegen wanneer request-body-strict = false
INSERT INTO Users (Name) VALUES ('Alice');
-- Default values for Age (18) and IsAdmin (0) are applied by the database.
-- IsMinor is ignored because it’s a computed column.
-- ExtraField is ignored.
-- The database generates the Id value.
Antwoordlading
{
"Id": 1, // Auto-generated by the database
"Name": "Alice",
"Age": 18, // Default applied
"IsAdmin": false, // Default applied
"IsMinor": true // Computed
}
Gedrag bijwerken wanneer request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Antwoordlading
{
"Id": 1,
"Name": "Alice Updated",
"Age": null,
"IsAdmin": false,
"IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (hostruntime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
cors |
object | ❌ Nee | - |
Globale CORS-configuratie.
Tip
CORS staat voor Cross-Origin Resource Sharing. Het is een browserbeveiligingsfunctie waarmee wordt bepaald of webpagina's aanvragen kunnen indienen bij een ander domein dan het domein dat ze heeft geleverd.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.cors |
allow-credentials |
boolean | ❌ Nee | False |
runtime.host.cors |
origins |
tekenreeksmatrix | ❌ Nee | None |
Note
De allow-credentials eigenschap stelt de Access-Control-Allow-Credentials CORS-header in.
Format
{
"runtime": {
"host": {
"cors": {
"allow-credentials": <true> (default) | <false>,
"origins": ["<array-of-strings>"]
}
}
}
}
Note
Het jokerteken * is geldig als een waarde voor origins.
Provider (verificatiehostruntime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
provider |
enum (AppServiceSimulator | | EntraId | Custom) |
❌ Nee | None |
Selecteert de verificatiemethode. Elke provider valideert de identiteit anders. Zie de onderstaande handleidingen voor stapsgewijze instructies voor het instellen.
Providersamenvatting
| Provider | Gebruiksituatie | Identiteitsbron | Instructiegids |
|---|---|---|---|
| (weggelaten) | Anonieme toegang | None | — |
AppService |
Door Azure gehoste apps (EasyAuth) |
X-MS-CLIENT-PRINCIPAL Header |
App Service-verificatie configureren |
EntraID |
Microsoft Entra ID (Azure AD) | JWT bearer-token | Entra-ID-verificatie configureren |
Custom |
IdPs van derden (Okta, Auth0) | JWT bearer-token | Aangepaste JWT-verificatie configureren |
Simulator |
Alleen lokaal testen | Gesimuleerd | Simulatorverificatie configureren |
Note
De provider had eerder de EntraId naam AzureAd. De oude naam werkt nog steeds voor compatibiliteit.
Alleen anoniem (geen provider)
Wanneer de authentication sectie wordt weggelaten, werkt DAB in de modus alleen anoniem. Aan alle aanvragen wordt de Anonymous systeemrol toegewezen.
{
"host": {
// authentication section omitted
}
}
AppService
Vertrouwt identiteitsheaders die zijn geïnjecteerd door Azure App Service EasyAuth.
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
EntraID
Valideert JWT-tokens die zijn uitgegeven door Microsoft Entra ID.
{
"host": {
"authentication": {
"provider": "EntraId",
"jwt": {
"audience": "<application-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
Op maat gemaakt
Valideert JWT-tokens van externe id-providers.
{
"host": {
"authentication": {
"provider": "Custom",
"jwt": {
"audience": "<api-audience>",
"issuer": "https://<your-idp-domain>/"
}
}
}
}
Simulator
Simuleert verificatie voor lokale ontwikkeling en testen.
{
"host": {
"authentication": {
"provider": "Simulator"
}
}
}
Important
De Simulator provider werkt alleen wanneer runtime.host.mode dit is development. DAB kan niet worden gestart als Simulator is geconfigureerd in de productiemodus.
Rolselectie
Voor alle providers behalve Simulator selecteert de X-MS-API-ROLE header welke rol moet worden gebruikt van de claims van de geverifieerde gebruiker. Als u dit weglaat, gebruikt de aanvraag de Authenticated systeemrol. Zie Autorisatie en rollen voor meer informatie over rolevaluatie.
JWT (Runtime van verificatiehost)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
jwt |
object | ❌ Nee | - |
Algemene JSON-webtokenconfiguratie (JWT).
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication.jwt |
audience |
string | ❌ Nee | None |
runtime.host.authentication.jwt |
issuer |
string | ❌ Nee | None |
Format
{
"runtime": {
"host": {
"authentication": {
"jwt": {
"audience": "<client-id>",
"issuer": "<issuer-url>"
}
}
}
}
}
Paginering (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
pagination |
object | ❌ Nee | - |
Globale pagineringslimieten voor REST- en GraphQL-eindpunten.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.pagination |
max-page-size |
int | ❌ Nee | 100,000 |
runtime.pagination |
default-page-size |
int | ❌ Nee | 100 |
runtime.pagination |
next-link-relative |
boolean | ❌ Nee | false |
Ondersteunde waarden voor maximale paginagrootte
| Value | Result |
|---|---|
integer |
Elk positief 32-bits geheel getal wordt ondersteund. |
0 |
Wordt niet ondersteund. |
-1 |
De standaardwaarde wordt ingesteld op de maximaal ondersteunde waarde. |
< -1 |
Wordt niet ondersteund. |
Ondersteunde waarden voor standaardpaginagrootte
| Value | Result |
|---|---|
integer |
Een positief geheel getal kleiner dan de huidige max-page-size. |
0 |
Wordt niet ondersteund. |
-1 |
De standaardinstelling is ingesteld op de huidige max-page-size. |
< -1 |
Wordt niet ondersteund. |
Next-link-relative behavior
Wanneer next-link-relative gebruiken truepagineringswaarden nextLink relatieve URL's in plaats van absolute URL's.
| Value | Example |
|---|---|
false (standaard) |
"nextLink": "https://localhost:5001/api/users?$after=..." |
true |
"nextLink": "/api/users?$after=..." |
Format
{
"runtime": {
"pagination": {
"max-page-size": <integer; default: 100000>,
"default-page-size": <integer; default: 100>,
"next-link-relative": <boolean; default: false>
}
}
}
Note
Wanneer de waarde groter is dan max-page-size, worden de resultaten beperkt tot max-page-size.
Voorbeeld: Paging in REST
Request
GET https://localhost:5001/api/users
Antwoordlading
{
"value": [
{
"Id": 1,
"Name": "Alice",
"Age": 30,
"IsAdmin": true,
"IsMinor": false
},
{
"Id": 2,
"Name": "Bob",
"Age": 17,
"IsAdmin": false,
"IsMinor": true
}
],
"nextLink": "https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI=="
}
Volgende pagina aanvragen
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Voorbeeld: Paging in GraphQL
Nettolading aanvragen (query)
query {
users {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Antwoordlading
{
"data": {
"users": {
"items": [
{
"Id": 1,
"Name": "Alice",
"Age": 30,
"IsAdmin": true,
"IsMinor": false
},
{
"Id": 2,
"Name": "Bob",
"Age": 17,
"IsAdmin": false,
"IsMinor": true
}
],
"hasNextPage": true,
"endCursor": "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI=="
}
}
}
Volgende pagina aanvragen
query {
users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Voorbeeld: Toegang max-page-size tot aanvragen
Gebruik de max-page-size waarde door (REST) of $limit (GraphQL) in te stellen first op -1.
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
users(first: -1) {
items {
...
}
}
}
Cache (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
cache |
object | ❌ Nee | - |
Globale cacheconfiguratie.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.cache |
enabled |
boolean | ❌ Nee | False |
runtime.cache |
ttl-seconds |
integer | ❌ Nee | 5 |
Tip
De eigenschap op entiteitsniveau cache.ttl-seconds is standaard ingesteld op deze globale waarde.
Format
{
"runtime": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>
}
}
}
Important
Als globaal enabled het geval is false, maakt het niet uit op het niveau van enabled afzonderlijke entiteiten.
Telemetrie (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
telemetry |
object | ❌ Nee | - |
Globale telemetrieconfiguratie.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
log-level |
dictionary | ❌ Nee | None |
runtime.telemetry |
application-insights |
object | ❌ Nee | - |
runtime.telemetry |
open-telemetry |
object | ❌ Nee | - |
Hiermee configureert u de uitgebreide logboekregistratie per naamruimte. Dit volgt standaard .NET-logboekregistratieconventies en maakt gedetailleerde controle mogelijk, hoewel er wordt uitgegaan van enige bekendheid met interne gegevens-API-opbouwfuncties voor Data API. Data API Builder is open source: https://aka.ms/dab
Format
{
"runtime": {
"telemetry": {
"log-level": {
"namespace": "log-level",
"namespace": "log-level"
}
}
}
}
Tip
log-level kan dynamisch opnieuw worden geladen in zowel ontwikkeling als productie. Dit is momenteel de enige eigenschap die ondersteuning biedt voor het opnieuw laden van hotloads in productie.
Example
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
"Azure.DataApiBuilder.Core": "information",
"default": "warning"
}
}
}
}
Application Insights (telemetrie)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
application-insights |
object | ❌ Nee | - |
Hiermee configureert u logboekregistratie voor Application Insights.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.application-insights |
enabled |
boolean | ❌ Nee | False |
runtime.telemetry.application-insights |
connection-string |
string | ✔️ Ja | None |
Format
{
"runtime": {
"telemetry": {
"application-insights": {
"enabled": <true; default: true> | <false>
"connection-string": <string>
}
}
}
}
OpenTelemetry (telemetrie)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
open-telemetry |
object | ❌ Nee | - |
Hiermee configureert u logboekregistratie voor het openen van telemetrie.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.open-telemetry |
enabled |
boolean | ❌ Nee | true |
runtime.telemetry.open-telemetry |
endpoint |
string | ✔️ Ja | None |
runtime.telemetry.open-telemetry |
headers |
string | ❌ Nee | None |
runtime.telemetry.open-telemetry |
service-name |
string | ❌ Nee | "dab" |
runtime.telemetry.open-telemetry |
exporter-protocol |
enum (grpc | httpprotobuf) |
❌ Nee | grpc |
Meerdere kopteksten worden , gescheiden (komma's).
Format
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": <true> (default) | <false>,
"endpoint": <string>,
"headers": <string>,
"service-name": <string> (default: "dab"),
"exporter-protocol": <"grpc" (default) | "httpprotobuf">
}
}
}
}
Example
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
// a gRPC endpoint example
"endpoint": "http://localhost:4317",
// an HTTP/protobuf endpoint example
"endpoint": "http://localhost:4318/v1/metrics",
"headers": "api-key=key,other-config-value=value",
"service-name": "dab",
}
}
}
}
Meer informatie over OTEL_EXPORTER_OTLP_HEADERS.
Note
gRPC (4317) is sneller en ondersteunt streaming, maar vereist meer installatiestappen. HTTP/protobuf (4318) is eenvoudiger en eenvoudiger om fouten op te sporen, maar minder efficiënt.
Status (runtime)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
health |
object | ❌ Nee | - |
Globale configuratie van statuscontrole-eindpunt (/health).
Geneste eigenschappen
| Parent | Property | Type | Required | Default | Bereik/notities |
|---|---|---|---|---|---|
runtime.health |
enabled |
boolean | ❌ Nee | true |
|
runtime.health |
roles |
tekenreeksmatrix | ✔️ Ja* | null |
*Vereist in productiemodus |
runtime.health |
cache-ttl-seconds |
integer | ❌ Nee | 5 |
Min. 0 |
runtime.health |
max-query-parallelism |
integer | ❌ Nee | 4 |
Min: 1, Max: 8 (klem) |
Gedrag in ontwikkeling versus productie
| Condition | Ontwikkelingsgedrag | Productiegedrag |
|---|---|---|
health.enabled = onwaar |
403 Status |
403 Status |
health.enabled = waar |
Afhankelijk van rol | Afhankelijk van rol |
roles weggelaten of null |
Status weergegeven |
403 Status |
huidige rol niet in roles |
403 Status |
403 Status |
huidige rol in roles |
Status weergegeven | Status weergegeven |
roles Bevat anonymous |
Status weergegeven | Status weergegeven |
Format
{
"health": {
"enabled": <true> (default) | <false>,
"roles": [ <string> ], // required in production
"cache-ttl-seconds": <integer; default: 5>,
"max-query-parallelism": <integer; default: 4>
}
}
Note
Als globaal enabled het geval is false, maakt het niet uit op het niveau van enabled afzonderlijke entiteiten.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10,
"max-query-parallelism": 6
}
}