dotnet-monitor/documentation/schema.json

3028 строки
85 KiB
JSON

{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://www.github.com/dotnet/dotnet-monitor",
"title": "DotnetMonitorConfiguration",
"type": "object",
"additionalProperties": {},
"properties": {
"Logging": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LoggingOptions"
}
]
},
"Authentication": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/AuthenticationOptions"
}
]
},
"CollectionRules": {
"type": [
"null",
"object"
],
"default": {},
"additionalProperties": {
"$ref": "#/definitions/CollectionRuleOptions"
}
},
"GlobalCounter": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/GlobalCounterOptions"
}
]
},
"InProcessFeatures": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/InProcessFeaturesOptions"
}
]
},
"CorsConfiguration": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CorsConfigurationOptions"
}
]
},
"DiagnosticPort": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/DiagnosticPortOptions"
},
{
"type": "string"
}
]
},
"Egress": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/EgressOptions"
}
]
},
"Metrics": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/MetricsOptions"
}
]
},
"Storage": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/StorageOptions"
}
]
},
"DefaultProcess": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ProcessFilterOptions"
}
]
},
"CollectionRuleDefaults": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CollectionRuleDefaultsOptions"
}
]
},
"Templates": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/TemplateOptions"
}
]
},
"DotnetMonitorDebug": {
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/DotnetMonitorDebugOptions"
}
]
}
},
"definitions": {
"LoggingOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"LogLevel": {
"type": [
"null",
"object"
],
"description": "A mapping of logger categories to log levels describing the threshold level at which messages are logged for each category; applies to no specific provider.",
"default": {},
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevel"
}
]
}
},
"Console": {
"description": "Logging options for the Console provider.",
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ConsoleLoggerOptions"
}
]
},
"EventLog": {
"description": "Logging options for the EventLog provider.",
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevelOptions"
}
]
},
"Debug": {
"description": "Logging options for the Debug provider.",
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevelOptions"
}
]
},
"EventSource": {
"description": "Logging options for the EventSource provider.",
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevelOptions"
}
]
},
"CaptureScopes": {
"type": "boolean",
"description": "Gets or sets whether logging scopes are being captured. Defaults to true.",
"default": true
}
}
},
"LogLevel": {
"type": "string",
"description": "",
"x-enumNames": [
"Trace",
"Debug",
"Information",
"Warning",
"Error",
"Critical",
"None"
],
"enum": [
"Trace",
"Debug",
"Information",
"Warning",
"Error",
"Critical",
"None"
]
},
"ConsoleLoggerOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"FormatterName": {
"description": "Name of the log message formatter to use. Defaults to 'Simple'.",
"default": "Simple",
"oneOf": [
{
"$ref": "#/definitions/ConsoleLoggerFormat"
}
]
},
"LogToStandardErrorThreshold": {
"description": "The minimum level of messages that are written to Console.Error.",
"oneOf": [
{
"$ref": "#/definitions/LogLevel"
}
]
},
"FormatterOptions": {
"description": "Formatter options for the built-in console log formatter.",
"default": {},
"oneOf": [
{},
{
"type": "null"
}
]
},
"LogLevel": {
"type": [
"null",
"object"
],
"description": "A mapping of logger categories to log levels describing the threshold level at which messages are logged for each category; applies solely to ConsoleLoggerOptions.",
"default": {},
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevel"
}
]
}
}
},
"oneOf": [
{
"required": [
"FormatterName"
],
"properties": {
"FormatterName": {
"const": "Json"
},
"FormatterOptions": {
"$ref": "#/definitions/JsonConsoleFormatterOptions"
}
}
},
{
"required": [
"FormatterName"
],
"properties": {
"FormatterName": {
"const": "Simple"
},
"FormatterOptions": {
"$ref": "#/definitions/SimpleConsoleFormatterOptions"
}
}
},
{
"required": [
"FormatterName"
],
"properties": {
"FormatterName": {
"const": "Systemd"
},
"FormatterOptions": {
"$ref": "#/definitions/ConsoleFormatterOptions"
}
}
},
{
"properties": {
"FormatterName": {
"type": "null",
"default": "Simple"
},
"FormatterOptions": {
"$ref": "#/definitions/SimpleConsoleFormatterOptions"
}
}
}
]
},
"ConsoleLoggerFormat": {
"type": "string",
"description": "",
"x-enumNames": [
"Json",
"Simple",
"Systemd"
],
"enum": [
"Json",
"Simple",
"Systemd"
]
},
"LogLevelOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"LogLevel": {
"type": [
"null",
"object"
],
"description": "A mapping of logger categories to log levels describing the threshold level at which messages are logged for each category; applies to the specified provider.",
"default": {},
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevel"
}
]
}
}
}
},
"AuthenticationOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"MonitorApiKey": {
"description": "The parameters used to validate MonitorApiKey JWT tokens.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/MonitorApiKeyOptions"
}
]
},
"AzureAd": {
"description": "The parameters used to use configure authentication using Azure Active Directory.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/AzureAdOptions"
}
]
}
}
},
"MonitorApiKeyOptions": {
"type": "object",
"additionalProperties": false,
"required": [
"Subject",
"PublicKey"
],
"properties": {
"Subject": {
"type": "string",
"description": "The value of the 'sub' or Subject field in the JWT (JSON Web Token).",
"minLength": 1
},
"PublicKey": {
"type": "string",
"description": "The public key used to sign the JWT (JSON Web Token) used for authentication. This field is a JSON Web Key serialized as JSON encoded with base64Url encoding. The JWK must have a kty field of RSA or EC and should not have the private key information.",
"minLength": 1,
"pattern": "[0-9a-zA-Z_-]+"
},
"Issuer": {
"type": [
"null",
"string"
],
"description": "The expected value of the 'iss' or Issuer field in the JWT (JSON Web Token)."
}
}
},
"AzureAdOptions": {
"type": "object",
"additionalProperties": false,
"required": [
"ClientId",
"RequiredRole"
],
"properties": {
"Instance": {
"type": [
"null",
"string"
],
"description": "Specifies the Azure cloud instance users are signing in from. Can be either the Azure public cloud or one of the national clouds.",
"format": "uri",
"default": "https://login.microsoftonline.com"
},
"TenantId": {
"type": [
"null",
"string"
],
"description": "The tenant id of the Azure Active Directory tenant, or its tenant domain.",
"default": "organizations"
},
"ClientId": {
"type": "string",
"description": "The unique application (client) id assigned to the app registration in Azure Active Directory.",
"minLength": 1
},
"AppIdUri": {
"type": [
"null",
"string"
],
"description": "The App ID URI of the app registration. Defaults to api://{ClientId} if not specified.",
"format": "uri"
},
"RequiredRole": {
"type": "string",
"description": "The role required to be able to authenticate.",
"minLength": 1
}
}
},
"CollectionRuleOptions": {
"type": "object",
"description": "Options for describing an entire collection rule.",
"additionalProperties": false,
"required": [
"Trigger"
],
"properties": {
"Filters": {
"type": "array",
"description": "Process filters used to determine to which process(es) the collection rule is applied. All filters must match. If no filters are specified, the rule is applied to all discovered processes.",
"items": {
"$ref": "#/definitions/ProcessFilterDescriptor"
}
},
"Trigger": {
"description": "The trigger to use to monitor for a condition in the target process.",
"oneOf": [
{
"$ref": "#/definitions/CollectionRuleTriggerOptions"
}
]
},
"Actions": {
"type": "array",
"description": "The list of actions to be executed when the trigger raises its notification.",
"items": {
"$ref": "#/definitions/CollectionRuleActionOptions"
}
},
"Limits": {
"description": "The set of limits to constrain the execution of the rule and its components.",
"default": {},
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CollectionRuleLimitsOptions"
}
]
}
}
},
"ProcessFilterDescriptor": {
"type": "object",
"additionalProperties": false,
"properties": {
"Key": {
"description": "The criteria used to compare against the target process.",
"oneOf": [
{
"$ref": "#/definitions/ProcessFilterKey"
}
]
},
"Value": {
"type": [
"null",
"string"
],
"description": "The value of the criteria used to compare against the target process."
},
"MatchType": {
"description": "Type of match to use against the process criteria.",
"default": "Exact",
"oneOf": [
{
"$ref": "#/definitions/ProcessFilterType"
}
]
},
"ProcessName": {
"type": [
"null",
"string"
],
"description": "Performs a match based on the name of a process on the system."
},
"ProcessId": {
"type": [
"null",
"string"
],
"description": "Performs a match based on the numerical ID of a process on the system."
},
"CommandLine": {
"type": [
"null",
"string"
],
"description": "Performs a match based on the contents of the command passed to launch the process on the system; this typically includes the executable path and arguments to the process."
}
}
},
"ProcessFilterKey": {
"type": "string",
"description": "",
"x-enumNames": [
"ProcessId",
"ProcessName",
"CommandLine"
],
"enum": [
"ProcessId",
"ProcessName",
"CommandLine"
]
},
"ProcessFilterType": {
"type": "string",
"description": "",
"x-enumNames": [
"Exact",
"Contains"
],
"enum": [
"Exact",
"Contains"
]
},
"CollectionRuleTriggerOptions": {
"type": "object",
"description": "Options for describing the type of trigger and the settings to pass to that trigger.",
"additionalProperties": false,
"required": [
"Type"
],
"properties": {
"Type": {
"type": "string",
"description": "The type of trigger used to monitor for a condition in the target process.",
"minLength": 1,
"oneOf": [
{
"$ref": "#/definitions/CollectionRuleTriggerType"
}
]
},
"Settings": {
"description": "The settings to pass to the trigger when it is executed. Settings may be optional if the trigger doesn't require settings or its settings are all optional.",
"oneOf": [
{},
{
"type": "null"
}
]
}
},
"oneOf": [
{
"properties": {
"Type": {
"const": "AspNetRequestCount"
},
"Settings": {
"$ref": "#/definitions/AspNetRequestCountOptions"
}
}
},
{
"properties": {
"Type": {
"const": "AspNetRequestDuration"
},
"Settings": {
"$ref": "#/definitions/AspNetRequestDurationOptions"
}
}
},
{
"required": [
"Settings"
],
"properties": {
"Type": {
"const": "AspNetResponseStatus"
},
"Settings": {
"$ref": "#/definitions/AspNetResponseStatusOptions"
}
}
},
{
"required": [
"Settings"
],
"properties": {
"Type": {
"const": "EventCounter"
},
"Settings": {
"$ref": "#/definitions/EventCounterOptions"
}
}
},
{
"properties": {
"Type": {
"const": "CPUUsage"
},
"Settings": {
"$ref": "#/definitions/CPUUsageOptions"
}
}
},
{
"properties": {
"Type": {
"const": "GCHeapSize"
},
"Settings": {
"$ref": "#/definitions/GCHeapSizeOptions"
}
}
},
{
"properties": {
"Type": {
"const": "ThreadpoolQueueLength"
},
"Settings": {
"$ref": "#/definitions/ThreadpoolQueueLengthOptions"
}
}
},
{
"required": [
"Settings"
],
"properties": {
"Type": {
"const": "EventMeter"
},
"Settings": {
"$ref": "#/definitions/EventMeterOptions"
}
}
},
{
"properties": {
"Type": {
"const": "Startup"
},
"Settings": {
"type": "null"
}
}
}
]
},
"CollectionRuleActionOptions": {
"type": "object",
"description": "Options for describing the type of action to execute and the settings to pass to that action.",
"additionalProperties": false,
"required": [
"Type"
],
"properties": {
"Name": {
"type": [
"null",
"string"
],
"description": "The name used to refer to the action."
},
"Type": {
"type": "string",
"description": "The type of action to execute.",
"minLength": 1,
"oneOf": [
{
"$ref": "#/definitions/CollectionRuleActionType"
}
]
},
"Settings": {
"description": "The settings to pass to the action when it is executed. Settings may be optional if the action doesn't require settings or its settings are all optional.",
"oneOf": [
{},
{
"type": "null"
}
]
},
"WaitForCompletion": {
"type": [
"boolean",
"null"
],
"description": "Wait for the current action to complete before starting the next action.",
"default": false
}
},
"oneOf": [
{
"properties": {
"Type": {
"const": "CollectDump"
},
"Settings": {
"$ref": "#/definitions/CollectDumpOptions"
}
}
},
{
"properties": {
"Type": {
"const": "CollectExceptions"
},
"Settings": {
"$ref": "#/definitions/CollectExceptionsOptions"
}
}
},
{
"properties": {
"Type": {
"const": "CollectGCDump"
},
"Settings": {
"$ref": "#/definitions/CollectGCDumpOptions"
}
}
},
{
"properties": {
"Type": {
"const": "CollectLiveMetrics"
},
"Settings": {
"$ref": "#/definitions/CollectLiveMetricsOptions"
}
}
},
{
"properties": {
"Type": {
"const": "CollectLogs"
},
"Settings": {
"$ref": "#/definitions/CollectLogsOptions"
}
}
},
{
"properties": {
"Type": {
"const": "CollectStacks"
},
"Settings": {
"$ref": "#/definitions/CollectStacksOptions"
}
}
},
{
"properties": {
"Type": {
"const": "CollectTrace"
},
"Settings": {
"$ref": "#/definitions/CollectTraceOptions"
}
}
},
{
"required": [
"Settings"
],
"properties": {
"Type": {
"const": "Execute"
},
"Settings": {
"$ref": "#/definitions/ExecuteOptions"
}
}
},
{
"required": [
"Settings"
],
"properties": {
"Type": {
"const": "LoadProfiler"
},
"Settings": {
"$ref": "#/definitions/LoadProfilerOptions"
}
}
},
{
"required": [
"Settings"
],
"properties": {
"Type": {
"const": "SetEnvironmentVariable"
},
"Settings": {
"$ref": "#/definitions/SetEnvironmentVariableOptions"
}
}
},
{
"required": [
"Settings"
],
"properties": {
"Type": {
"const": "GetEnvironmentVariable"
},
"Settings": {
"$ref": "#/definitions/GetEnvironmentVariableOptions"
}
}
}
]
},
"CollectionRuleLimitsOptions": {
"type": "object",
"description": "Options for limiting the execution of a collection rule.",
"additionalProperties": false,
"properties": {
"ActionCount": {
"type": [
"integer",
"null"
],
"description": "The number of times the action list may be executed before being throttled.",
"format": "int32",
"default": 5,
"maximum": 2147483647.0,
"minimum": 1.0
},
"ActionCountSlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding window of time to consider whether the action list should be throttled based on the number of times the action list was executed. Executions that fall outside the window will not count toward the limit specified in the ActionCount setting.",
"format": "duration"
},
"RuleDuration": {
"type": [
"null",
"string"
],
"description": "The amount of time before the rule will stop monitoring a process after it has been applied to a process. If not specified, the rule will monitor the process with the trigger indefinitely.",
"format": "duration"
}
}
},
"GlobalCounterOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"IntervalSeconds": {
"type": [
"null",
"number"
],
"description": "Determines the metrics interval for all dotnet-monitor scenarios. This includes prometheus metrics, live metrics, triggers, and traces.",
"format": "float",
"default": 5.0,
"maximum": 86400.0,
"minimum": 1.0
},
"MaxHistograms": {
"type": [
"integer",
"null"
],
"description": "The maximum number of histograms that can be tracked. Each unique combination of provider name, histogram name, and dimension values counts as one histogram. Tracking more histograms uses more memory in the target process so this bound guards against unintentional high memory use.",
"format": "int32",
"default": 20,
"maximum": 2147483647.0,
"minimum": 1.0
},
"MaxTimeSeries": {
"type": [
"integer",
"null"
],
"description": "The maximum number of time series that can be tracked. Each unique combination of provider name, metric name, and dimension values counts as one time series. Tracking more time series uses more memory in the target process so this bound guards against unintentional high memory use.",
"format": "int32",
"default": 1000,
"maximum": 2147483647.0,
"minimum": 1.0
},
"Providers": {
"type": [
"null",
"object"
],
"description": "Dictionary of provider names and their global configuration.",
"additionalProperties": {
"$ref": "#/definitions/GlobalProviderOptions"
}
}
}
},
"GlobalProviderOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"IntervalSeconds": {
"type": [
"null",
"number"
],
"format": "float",
"maximum": 86400.0,
"minimum": 1.0
}
}
},
"InProcessFeaturesOptions": {
"type": "object",
"description": "Configuration options for in-process features, ones that execute within each target process.",
"additionalProperties": false,
"properties": {
"Enabled": {
"type": [
"boolean",
"null"
],
"description": "Allows features that require diagnostic components to be loaded into target processes to be enabled. These features may have minimal performance impact on target processes.",
"default": false
},
"CallStacks": {
"description": "Options for the in-process call stacks feature.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CallStacksOptions"
}
]
},
"Exceptions": {
"description": "Options for the in-process exceptions feature.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ExceptionsOptions"
}
]
},
"ParameterCapturing": {
"description": "[Experimental] Options for the in-process parameter capturing feature.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ParameterCapturingOptions"
}
]
}
}
},
"CallStacksOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Enabled": {
"type": [
"boolean",
"null"
],
"description": "Enables or disables the call stacks feature. By default, this feature is enabled if in-process features are enabled.",
"default": true
}
}
},
"ExceptionsOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Enabled": {
"type": [
"boolean",
"null"
],
"description": "Enables or disables the exceptions feature. By default, this feature is enabled if in-process features are enabled.",
"default": true
},
"TopLevelLimit": {
"type": [
"integer",
"null"
],
"description": "The number of top-level exceptions to keep in the cache before automatically removing older exceptions. A top-level exception is one that is not an inner exception of another exception.",
"format": "int32",
"default": 20,
"maximum": 2147483647.0,
"minimum": 1.0
},
"CollectionFilters": {
"description": "The filters that determine which exceptions should be included/excluded when collecting exceptions.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ExceptionsConfiguration"
}
]
}
}
},
"ExceptionsConfiguration": {
"type": "object",
"additionalProperties": false,
"properties": {
"Include": {
"type": "array",
"description": "The list of exception configurations that determine which exceptions should be shown.\nEach configuration is a logical OR, so if any of the configurations match, the exception is shown.",
"items": {
"$ref": "#/definitions/ExceptionFilter"
}
},
"Exclude": {
"type": "array",
"description": "The list of exception configurations that determine which exceptions should be shown.\nEach configuration is a logical OR, so if any of the configurations match, the exception isn't shown.",
"items": {
"$ref": "#/definitions/ExceptionFilter"
}
}
}
},
"ExceptionFilter": {
"type": "object",
"additionalProperties": false,
"properties": {
"ExceptionType": {
"type": [
"null",
"string"
]
},
"ModuleName": {
"type": [
"null",
"string"
]
},
"TypeName": {
"type": [
"null",
"string"
]
},
"MethodName": {
"type": [
"null",
"string"
]
}
}
},
"ParameterCapturingOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Enabled": {
"type": [
"boolean",
"null"
],
"description": "Enables or disables the parameter capturing feature. By default, this feature is not enabled.",
"default": false
}
}
},
"CorsConfigurationOptions": {
"type": "object",
"additionalProperties": false,
"required": [
"AllowedOrigins"
],
"properties": {
"AllowedOrigins": {
"type": "string",
"description": "List of allowed CORS origins, separated by semicolons.",
"minLength": 1
}
}
},
"DiagnosticPortOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"ConnectionMode": {
"description": "In 'Connect' mode, dotnet-monitor connects to the application for diagnostics. In 'Listen' mode, the application connects to dotnet-monitor via EndpointName.",
"default": "Connect",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/DiagnosticPortConnectionMode"
}
]
},
"EndpointName": {
"type": [
"null",
"string"
],
"description": "In 'Listen' mode, specifies the name of the named pipe or unix domain socket to use for connecting to the diagnostic server."
},
"MaxConnections": {
"type": [
"integer",
"null"
],
"description": "In 'Listen' mode, the maximum amount of connections to accept.",
"format": "int32"
},
"DeleteEndpointOnStartup": {
"type": [
"boolean",
"null"
],
"description": "In 'Listen' connection mode, deletes the domain socket file used for diagnostic port communication.",
"default": false
}
}
},
"DiagnosticPortConnectionMode": {
"type": "string",
"description": "",
"x-enumNames": [
"Connect",
"Listen"
],
"enum": [
"Connect",
"Listen"
]
},
"EgressOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"FileSystem": {
"type": [
"null",
"object"
],
"description": "Mapping of file system egress provider names to their options.",
"default": {},
"additionalProperties": {
"$ref": "#/definitions/FileSystemEgressProviderOptions"
}
},
"Properties": {
"type": [
"null",
"object"
],
"description": "Additional properties, such as secrets, that can be referenced by the provider definitions.",
"default": {},
"additionalProperties": {
"type": "string"
}
},
"AzureBlobStorage": {
"type": [
"null",
"object"
],
"description": "Mapping of Azure blob storage egress provider names to their options.",
"default": {},
"additionalProperties": {
"$ref": "#/definitions/AzureBlobEgressProviderOptions"
}
},
"S3Storage": {
"type": [
"null",
"object"
],
"description": "Mapping of S3 storage egress provider names to their options.",
"default": {},
"additionalProperties": {
"$ref": "#/definitions/S3StorageEgressProviderOptions"
}
}
}
},
"FileSystemEgressProviderOptions": {
"type": "object",
"description": "Egress provider options for file system egress.",
"additionalProperties": false,
"required": [
"DirectoryPath"
],
"properties": {
"DirectoryPath": {
"type": "string",
"description": "The directory path to which the stream data will be egressed.",
"minLength": 1
},
"IntermediateDirectoryPath": {
"type": [
"null",
"string"
],
"description": "The directory path to which the stream data will initially be written, if specified; the file will then be moved/renamed to the directory specified in DirectoryPath."
},
"CopyBufferSize": {
"type": [
"integer",
"null"
],
"description": "Buffer size used when copying data from an egress callback returning a stream to the egress callback that is provided a stream to which data is written.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
}
}
},
"MetricsOptions": {
"type": "object",
"description": "Configuration for prometheus metric collection and retrieval.\nTODO We may want to expose https endpoints here as well, and make port changes\nTODO How do we determine which process to scrape in multi-proc situations? How do we configure this\nfor situations where the pid is not known or ambiguous?",
"additionalProperties": false,
"properties": {
"Enabled": {
"type": [
"boolean",
"null"
],
"description": "Enable or disable metrics collection.",
"default": true
},
"Endpoints": {
"type": [
"null",
"string"
],
"description": "Endpoints that expose prometheus metrics. Defaults to http://localhost:52325."
},
"MetricCount": {
"type": [
"integer",
"null"
],
"description": "Amount of data points to store per metric.",
"format": "int32",
"default": 3,
"maximum": 2147483647.0,
"minimum": 1.0
},
"IncludeDefaultProviders": {
"type": [
"boolean",
"null"
],
"description": "Include default providers: System.Runtime, Microsoft.AspNetCore.Hosting, and Grpc.AspNetCore.Server.",
"default": true
},
"Providers": {
"type": "array",
"description": "Providers for custom metrics.",
"items": {
"$ref": "#/definitions/MetricProvider"
}
},
"Meters": {
"type": "array",
"description": "Names of meters to collect from the System.Diagnostics.Metrics provider.",
"items": {
"$ref": "#/definitions/MeterConfiguration"
}
}
}
},
"MetricProvider": {
"type": "object",
"additionalProperties": false,
"required": [
"ProviderName"
],
"properties": {
"ProviderName": {
"type": "string",
"description": "The name of the custom metrics provider.",
"minLength": 1
},
"CounterNames": {
"type": "array",
"description": "Name of custom metrics counters.",
"items": {
"type": "string"
}
}
}
},
"MeterConfiguration": {
"type": "object",
"additionalProperties": false,
"properties": {
"MeterName": {
"type": [
"null",
"string"
],
"description": "Name of the custom meter."
},
"InstrumentNames": {
"type": "array",
"description": "Names of the custom instruments.",
"items": {
"type": "string"
}
}
}
},
"StorageOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"DefaultSharedPath": {
"type": [
"null",
"string"
],
"description": "The default path where assets will be shared between dotnet-monitor and target processes. Dumps are temporarily stored under this path or in a sub folder unless DumpTempFolder is specified. Shared libraries are stored under this path or in a sub folder unless SharedLibraryPath is specified. On non-Windows platforms, a server diagnostic port is created with the name of 'dotnet-monitor.sock' immediately under this path if running in listen mode unless the diagnostic port is specified on the command line or the DiagnosticPort options are specified."
},
"DumpTempFolder": {
"type": [
"null",
"string"
],
"description": "The location for temporary dump files. Defaults to the temp folder."
},
"SharedLibraryPath": {
"type": [
"null",
"string"
],
"description": "[Experimental] The location to which libraries shared with target processes will be copied at startup."
}
}
},
"ProcessFilterOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Filters": {
"type": "array",
"description": "Process filters used to determine which process to use if one is not explicitly specified. All filters must match.",
"items": {
"$ref": "#/definitions/ProcessFilterDescriptor"
}
}
}
},
"CollectionRuleDefaultsOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Triggers": {
"description": "The Collection Rule Defaults that can be applied to triggers.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CollectionRuleTriggerDefaultsOptions"
}
]
},
"Actions": {
"description": "The Collection Rule Defaults that can be applied to actions.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CollectionRuleActionDefaultsOptions"
}
]
},
"Limits": {
"description": "The Collection Rule Defaults that can be applied to limits.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CollectionRuleLimitsDefaultsOptions"
}
]
}
}
},
"CollectionRuleTriggerDefaultsOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"RequestCount": {
"type": [
"integer",
"null"
],
"description": "The default threshold of the number of requests that start within the sliding window of time.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"ResponseCount": {
"type": [
"integer",
"null"
],
"description": "The default threshold number of responses with matching status codes.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The default sliding window duration.",
"format": "duration"
}
}
},
"CollectionRuleActionDefaultsOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Egress": {
"type": [
"null",
"string"
],
"description": "The name of the default Egress Provider."
}
}
},
"CollectionRuleLimitsDefaultsOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"ActionCount": {
"type": [
"integer",
"null"
],
"description": "The default number of times the action list may be executed before being throttled.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"ActionCountSlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The default sliding window of time to consider whether the action list should be throttled based on the number of times the action list was executed.",
"format": "duration"
},
"RuleDuration": {
"type": [
"null",
"string"
],
"description": "The default amount of time before the rule will stop monitoring a process after it has been applied to a process.",
"format": "duration"
}
}
},
"TemplateOptions": {
"type": "object",
"description": "Options for describing custom user-defined templates.",
"additionalProperties": false,
"properties": {
"CollectionRuleFilters": {
"type": [
"null",
"object"
],
"description": "Process filters used to determine to which process(es) the collection rule is applied. All filters must match. If no filters are specified, the rule is applied to all discovered processes.",
"additionalProperties": {
"$ref": "#/definitions/ProcessFilterDescriptor"
}
},
"CollectionRuleTriggers": {
"type": [
"null",
"object"
],
"description": "The trigger to use to monitor for a condition in the target process.",
"additionalProperties": {
"$ref": "#/definitions/CollectionRuleTriggerOptions"
}
},
"CollectionRuleActions": {
"type": [
"null",
"object"
],
"description": "The list of actions to be executed when the trigger raises its notification.",
"additionalProperties": {
"$ref": "#/definitions/CollectionRuleActionOptions"
}
},
"CollectionRuleLimits": {
"type": [
"null",
"object"
],
"description": "The set of limits to constrain the execution of the rule and its components.",
"additionalProperties": {
"$ref": "#/definitions/CollectionRuleLimitsOptions"
}
}
}
},
"DotnetMonitorDebugOptions": {
"type": "object",
"description": "Configuration options for debugging dotnet-monitor features.\nThese options are not officially supported and are subject to change.",
"additionalProperties": false,
"properties": {
"Exceptions": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ExceptionsDebugOptions"
}
]
}
}
},
"ExceptionsDebugOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"IncludeMonitorExceptions": {
"type": [
"boolean",
"null"
],
"default": false
}
}
},
"CollectionRuleActionType": {
"type": "string",
"enum": [
"CollectDump",
"CollectExceptions",
"CollectGCDump",
"CollectLiveMetrics",
"CollectLogs",
"CollectStacks",
"CollectTrace",
"Execute",
"LoadProfiler",
"SetEnvironmentVariable",
"GetEnvironmentVariable"
]
},
"CollectDumpOptions": {
"type": "object",
"description": "Options for the CollectDump action.",
"additionalProperties": false,
"properties": {
"Type": {
"description": "The type of dump to collect from the target process.",
"default": "WithHeap",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/DumpType"
}
]
},
"Egress": {
"type": "string",
"description": "The name of the egress provider to which the artifact is egressed.",
"minLength": 1
},
"ArtifactName": {
"type": [
"null",
"string"
],
"description": "The name of the generated artifact."
}
}
},
"DumpType": {
"type": "string",
"description": "",
"x-enumNames": [
"Full",
"Mini",
"WithHeap",
"Triage"
],
"enum": [
"Full",
"Mini",
"WithHeap",
"Triage"
]
},
"CollectExceptionsOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Egress": {
"type": "string",
"description": "The name of the egress provider to which the artifact is egressed.",
"minLength": 1
},
"Format": {
"description": "The format used to display the exceptions.",
"default": "PlainText",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ExceptionFormat"
}
]
},
"Filters": {
"description": "The filters that determine which exceptions should be included/excluded when collecting exceptions.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/ExceptionsConfiguration"
}
]
},
"ArtifactName": {
"type": [
"null",
"string"
],
"description": "The name of the generated artifact."
}
}
},
"ExceptionFormat": {
"type": "string",
"description": "",
"x-enumNames": [
"NewlineDelimitedJson",
"PlainText",
"JsonSequence"
],
"enum": [
"NewlineDelimitedJson",
"PlainText",
"JsonSequence"
]
},
"CollectGCDumpOptions": {
"type": "object",
"description": "Options for the CollectGCDump action.",
"additionalProperties": false,
"properties": {
"Egress": {
"type": "string",
"description": "The name of the egress provider to which the artifact is egressed.",
"minLength": 1
},
"ArtifactName": {
"type": [
"null",
"string"
],
"description": "The name of the generated artifact."
}
}
},
"CollectLiveMetricsOptions": {
"type": "object",
"description": "Options for the CollectLiveMetrics action.",
"additionalProperties": false,
"properties": {
"IncludeDefaultProviders": {
"type": [
"boolean",
"null"
],
"description": "Determines if the default counter providers should be used.",
"default": true
},
"Providers": {
"type": [
"array",
"null"
],
"description": "The array of providers for metrics to collect.",
"items": {
"$ref": "#/definitions/EventMetricsProvider"
}
},
"Meters": {
"type": [
"array",
"null"
],
"description": "The array of meters for metrics to collect.",
"items": {
"$ref": "#/definitions/EventMetricsMeter"
}
},
"Duration": {
"type": [
"null",
"string"
],
"description": "The duration of time in which the artifact is collected.",
"format": "duration",
"default": "00:00:30"
},
"Egress": {
"type": "string",
"description": "The name of the egress provider to which the artifact is egressed.",
"minLength": 1
},
"ArtifactName": {
"type": [
"null",
"string"
],
"description": "The name of the generated artifact."
}
}
},
"EventMetricsProvider": {
"type": "object",
"additionalProperties": false,
"required": [
"ProviderName"
],
"properties": {
"ProviderName": {
"type": "string",
"minLength": 1
},
"CounterNames": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
}
}
},
"EventMetricsMeter": {
"type": "object",
"additionalProperties": false,
"required": [
"MeterName"
],
"properties": {
"MeterName": {
"type": "string",
"minLength": 1
},
"InstrumentNames": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
}
}
},
"CollectLogsOptions": {
"type": "object",
"description": "Options for the CollectLogs action.",
"additionalProperties": false,
"properties": {
"DefaultLevel": {
"description": "The default log level at which logs are collected for entries in the FilterSpecs that do not have a specified LogLevel value.",
"default": "Warning",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevel"
}
]
},
"FilterSpecs": {
"type": [
"null",
"object"
],
"description": "A custom mapping of logger categories to log levels that describes at what level a log statement that matches one of the given categories should be captured.",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogLevel"
}
]
}
},
"UseAppFilters": {
"type": [
"boolean",
"null"
],
"description": "Specifies whether to capture log statements at the levels as specified in the application-defined filters.",
"default": true
},
"Duration": {
"type": [
"null",
"string"
],
"description": "The duration of time in which the artifact is collected.",
"format": "duration",
"default": "00:00:30"
},
"Egress": {
"type": "string",
"description": "The name of the egress provider to which the artifact is egressed.",
"minLength": 1
},
"Format": {
"description": "The format of the logs artifact.",
"default": "PlainText",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/LogFormat"
}
]
},
"ArtifactName": {
"type": [
"null",
"string"
],
"description": "The name of the generated artifact."
}
}
},
"LogFormat": {
"type": "string",
"description": "",
"x-enumNames": [
"NewlineDelimitedJson",
"PlainText",
"JsonSequence"
],
"enum": [
"NewlineDelimitedJson",
"PlainText",
"JsonSequence"
]
},
"CollectStacksOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Egress": {
"type": "string",
"description": "The name of the egress provider to which the artifact is egressed.",
"minLength": 1
},
"Format": {
"description": "The format used to display the call stacks.",
"default": "Json",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/CallStackFormat"
}
]
},
"ArtifactName": {
"type": [
"null",
"string"
],
"description": "The name of the generated artifact."
}
}
},
"CallStackFormat": {
"type": "string",
"description": "",
"x-enumNames": [
"Json",
"PlainText",
"Speedscope"
],
"enum": [
"Json",
"PlainText",
"Speedscope"
]
},
"CollectTraceOptions": {
"type": "object",
"description": "Options for the CollectTrace action.",
"additionalProperties": false,
"properties": {
"Profile": {
"description": "Use a predefined set of event providers and settings to capture in the trace. More than one profile may be specified at the same time. Either Profile or Providers must be specified, but not both.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/TraceProfile"
}
]
},
"Providers": {
"type": [
"array",
"null"
],
"description": "A list of event providers and settings to capture in the trace. Either Profile or Providers must be specified, but not both.",
"items": {
"$ref": "#/definitions/EventPipeProvider"
}
},
"RequestRundown": {
"type": [
"boolean",
"null"
],
"description": "Indicates that rundown information should be included in the trace.",
"default": true
},
"BufferSizeMegabytes": {
"type": [
"integer",
"null"
],
"description": "The size of the event pipe buffer to use in the target process. If the event pipe buffer fills with too many events, newer events will be dropped until the buffer is drained to fit new events.",
"format": "int32",
"default": 256,
"maximum": 1024.0,
"minimum": 1.0
},
"Duration": {
"type": [
"null",
"string"
],
"description": "The duration of time in which the artifact is collected.",
"format": "duration",
"default": "00:00:30"
},
"Egress": {
"type": "string",
"description": "The name of the egress provider to which the artifact is egressed.",
"minLength": 1
},
"StoppingEvent": {
"description": "The event to watch for while collecting the trace, and once observed the trace will be stopped.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/TraceEventFilter"
}
]
},
"ArtifactName": {
"type": [
"null",
"string"
],
"description": "The name of the generated artifact."
}
}
},
"TraceProfile": {
"type": "string",
"description": "",
"x-enumFlags": true,
"x-enumNames": [
"Cpu",
"Http",
"Logs",
"Metrics",
"GcCollect"
],
"enum": [
"Cpu",
"Http",
"Logs",
"Metrics",
"GcCollect"
]
},
"EventPipeProvider": {
"type": "object",
"additionalProperties": false,
"required": [
"Name"
],
"properties": {
"Name": {
"type": "string",
"minLength": 1
},
"Keywords": {
"type": [
"null",
"string"
]
},
"EventLevel": {
"$ref": "#/definitions/EventLevel"
},
"Arguments": {
"type": [
"null",
"object"
],
"additionalProperties": {
"type": "string"
}
}
}
},
"EventLevel": {
"type": "string",
"description": "",
"x-enumNames": [
"LogAlways",
"Critical",
"Error",
"Warning",
"Informational",
"Verbose"
],
"enum": [
"LogAlways",
"Critical",
"Error",
"Warning",
"Informational",
"Verbose"
]
},
"TraceEventFilter": {
"type": "object",
"description": "A trace event filter.",
"additionalProperties": false,
"required": [
"ProviderName",
"EventName"
],
"properties": {
"ProviderName": {
"type": "string",
"description": "The event provider that will produce the specified event.",
"minLength": 1
},
"EventName": {
"type": "string",
"description": "The name of the event, which is a concatenation of the task name and opcode name, if any. The task and opcode names are separated by a '/'. If the event has no opcode, then the event name is just the task name.",
"minLength": 1
},
"PayloadFilter": {
"type": [
"null",
"object"
],
"description": "A mapping of event payload field names to their expected value. A subset of the payload fields may be specified.",
"additionalProperties": {
"type": "string"
}
}
}
},
"ExecuteOptions": {
"type": "object",
"description": "Options for the Execute action.",
"additionalProperties": false,
"required": [
"Path"
],
"properties": {
"Path": {
"type": "string",
"description": "The path of the executable to start.",
"minLength": 1
},
"Arguments": {
"type": [
"null",
"string"
],
"description": "The arguments to pass to the executable."
},
"IgnoreExitCode": {
"type": [
"boolean",
"null"
],
"default": false
}
}
},
"LoadProfilerOptions": {
"type": "object",
"description": "Options for the LoadProfilerAction action.",
"additionalProperties": false,
"required": [
"Path",
"Clsid"
],
"properties": {
"Path": {
"type": "string",
"description": "The path of the profiler library to be loaded. This is typically the same value that would be set as the CORECLR_PROFILER_PATH environment variable.",
"minLength": 1
},
"Clsid": {
"type": "string",
"description": "The class identifier (or CLSID, typically a GUID) of the ICorProfilerCallback implementation. This is typically the same value that would be set as the CORECLR_PROFILER environment variable.",
"format": "guid",
"minLength": 1
}
}
},
"SetEnvironmentVariableOptions": {
"type": "object",
"description": "Options for the SetEnvironmentVariable action.",
"additionalProperties": false,
"required": [
"Name"
],
"properties": {
"Name": {
"type": "string",
"description": "The name of the environment variable to set.",
"minLength": 1
},
"Value": {
"type": [
"null",
"string"
],
"description": "The value of the environment variable to set."
}
}
},
"GetEnvironmentVariableOptions": {
"type": "object",
"description": "Options for the GetEnvironmentVariable action.",
"additionalProperties": false,
"required": [
"Name"
],
"properties": {
"Name": {
"type": "string",
"description": "The name of the environment variable to get.",
"minLength": 1
}
}
},
"CollectionRuleTriggerType": {
"type": "string",
"enum": [
"AspNetRequestCount",
"AspNetRequestDuration",
"AspNetResponseStatus",
"EventCounter",
"CPUUsage",
"GCHeapSize",
"ThreadpoolQueueLength",
"EventMeter",
"Startup"
]
},
"AspNetRequestCountOptions": {
"type": "object",
"description": "Options for the AspNetRequestCount trigger.",
"additionalProperties": false,
"properties": {
"RequestCount": {
"type": "integer",
"description": "The threshold of the number of requests that start within the sliding window of time.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the number of requests are counted.",
"format": "duration"
},
"IncludePaths": {
"type": [
"array",
"null"
],
"description": "The list of request paths to monitor. If not specified, all request paths are monitored. A request path must exactly match one of the items in the list to be monitored. Request paths matching the ExcludePaths list will not be monitored.",
"items": {
"type": "string"
}
},
"ExcludePaths": {
"type": [
"array",
"null"
],
"description": "The list of request paths to ignore. A request path must exactly match one of the items in the list to be ignored.",
"items": {
"type": "string"
}
}
}
},
"AspNetRequestDurationOptions": {
"type": "object",
"description": "Options for the AspNetRequestDuration trigger.",
"additionalProperties": false,
"properties": {
"RequestCount": {
"type": "integer",
"description": "The threshold of the number of slow requests that start within the sliding window of time.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"RequestDuration": {
"type": [
"null",
"string"
],
"description": "The threshold of the amount of time in which a request is considered to be slow.",
"format": "duration",
"default": "00:00:05"
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the the number of slow requests are counted.",
"format": "duration"
},
"IncludePaths": {
"type": [
"array",
"null"
],
"description": "The list of request paths to monitor. If not specified, all request paths are monitored. A request path must exactly match one of the items in the list to be monitored. Request paths matching the ExcludePaths list will not be monitored.",
"items": {
"type": "string"
}
},
"ExcludePaths": {
"type": [
"array",
"null"
],
"description": "The list of request paths to ignore. A request path must exactly match one of the items in the list to be ignored.",
"items": {
"type": "string"
}
}
}
},
"AspNetResponseStatusOptions": {
"type": "object",
"description": "Options for the AspNetResponseStatus trigger.",
"additionalProperties": false,
"required": [
"StatusCodes"
],
"properties": {
"StatusCodes": {
"type": "array",
"description": "The list of HTTP response status codes to monitor. Each item of the list can be a single code or a range of codes (e.g. \"400-499\").",
"pattern": "[1-5][0-9]{2}(-[1-5][0-9]{2})?",
"minItems": 1,
"items": {
"type": "string"
}
},
"ResponseCount": {
"type": "integer",
"description": "The threshold number of responses with matching status codes.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the number of responses with matching status codes must occur.",
"format": "duration"
},
"IncludePaths": {
"type": [
"array",
"null"
],
"description": "The list of request paths to monitor. If not specified, all request paths are monitored. A request path must exactly match one of the items in the list to be monitored. Request paths matching the ExcludePaths list will not be monitored.",
"items": {
"type": "string"
}
},
"ExcludePaths": {
"type": [
"array",
"null"
],
"description": "The list of request paths to ignore. A request path must exactly match one of the items in the list to be ignored.",
"items": {
"type": "string"
}
}
}
},
"EventCounterOptions": {
"type": "object",
"description": "Options for the EventCounter trigger.",
"additionalProperties": false,
"required": [
"ProviderName",
"CounterName"
],
"properties": {
"ProviderName": {
"type": "string",
"description": "The name of the event source that provides the counter information.",
"minLength": 1
},
"CounterName": {
"type": "string",
"description": "The name of the counter to monitor.",
"minLength": 1
},
"GreaterThan": {
"type": [
"null",
"number"
],
"description": "The threshold level the counter must maintain (or higher) for the specified duration. Either GreaterThan or LessThan (or both) must be specified.",
"format": "double"
},
"LessThan": {
"type": [
"null",
"number"
],
"description": "The threshold level the counter must maintain (or lower) for the specified duration. Either GreaterThan or LessThan (or both) must be specified.",
"format": "double"
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the counter must maintain its value as specified by the threshold levels in GreaterThan and LessThan.",
"format": "duration"
}
}
},
"CPUUsageOptions": {
"type": "object",
"description": "Options for the CPUUsage trigger.",
"additionalProperties": false,
"properties": {
"GreaterThan": {
"type": [
"null",
"number"
],
"description": "The threshold level as a percentage that the counter must maintain (or higher) for the specified duration.",
"format": "double",
"default": 50.0,
"maximum": 100.0,
"minimum": 0.0
},
"LessThan": {
"type": [
"null",
"number"
],
"description": "The threshold level as a percentage that the counter must maintain (or lower) for the specified duration. If LessThan is specified, the default value of GreaterThan becomes null.",
"format": "double",
"maximum": 100.0,
"minimum": 0.0
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the counter must maintain its value as specified by the threshold levels in GreaterThan and LessThan.",
"format": "duration",
"default": "00:01:00"
}
}
},
"GCHeapSizeOptions": {
"type": "object",
"description": "Options for the GCHeapSize trigger.",
"additionalProperties": false,
"properties": {
"GreaterThan": {
"type": [
"null",
"number"
],
"description": "The threshold level in MBs that the counter must maintain (or higher) for the specified duration.",
"format": "double",
"default": 10.0,
"minimum": 0.0
},
"LessThan": {
"type": [
"null",
"number"
],
"description": "The threshold level in MBs that the counter must maintain (or lower) for the specified duration. If LessThan is specified, the default value of GreaterThan becomes null.",
"format": "double",
"minimum": 0.0
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the counter must maintain its value as specified by the threshold levels in GreaterThan and LessThan.",
"format": "duration",
"default": "00:01:00"
}
}
},
"ThreadpoolQueueLengthOptions": {
"type": "object",
"description": "Options for the ThreadpoolQueueLength trigger.",
"additionalProperties": false,
"properties": {
"GreaterThan": {
"type": [
"null",
"number"
],
"description": "The threshold level the counter must maintain (or higher) for the specified duration.",
"format": "double",
"default": 200.0,
"minimum": 0.0
},
"LessThan": {
"type": [
"null",
"number"
],
"description": "The threshold level the counter must maintain (or lower) for the specified duration. If LessThan is specified, the default value of GreaterThan becomes null.",
"format": "double",
"minimum": 0.0
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the counter must maintain its value as specified by the threshold levels in GreaterThan and LessThan.",
"format": "duration",
"default": "00:01:00"
}
}
},
"EventMeterOptions": {
"type": "object",
"description": "Options for the EventMeter trigger.",
"additionalProperties": false,
"required": [
"MeterName",
"InstrumentName"
],
"properties": {
"MeterName": {
"type": "string",
"description": "The name of the meter that provides the instrument information.",
"minLength": 1
},
"InstrumentName": {
"type": "string",
"description": "The name of the instrument to monitor.",
"minLength": 1
},
"GreaterThan": {
"type": [
"null",
"number"
],
"description": "The threshold level the instrument must maintain (or higher) for the specified duration. Either GreaterThan or LessThan (or both) must be specified.",
"format": "double"
},
"LessThan": {
"type": [
"null",
"number"
],
"description": "The threshold level the instrument must maintain (or lower) for the specified duration. Either GreaterThan or LessThan (or both) must be specified.",
"format": "double"
},
"SlidingWindowDuration": {
"type": [
"null",
"string"
],
"description": "The sliding time window in which the instrument must maintain its value as specified by the threshold levels in GreaterThan and LessThan.",
"format": "duration"
},
"HistogramPercentile": {
"type": [
"integer",
"null"
],
"description": "When monitoring a histogram, this dictates which percentile to compare against using the value in GreaterThan/LessThan - by default, the percentile can be 50, 95, or 99.",
"format": "int32",
"maximum": 100.0,
"minimum": 0.0
}
}
},
"JsonConsoleFormatterOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"JsonWriterOptions": {
"description": "Gets or sets JsonWriterOptions.",
"oneOf": [
{
"$ref": "#/definitions/JsonWriterOptions"
}
]
},
"IncludeScopes": {
"type": "boolean",
"description": "Gets or sets whether scopes should be included or not."
},
"TimestampFormat": {
"type": [
"null",
"string"
],
"description": "Gets or sets the format string used to format the timestamp in logging messages. Defaults to null."
},
"UseUtcTimestamp": {
"type": "boolean",
"description": "Gets or sets whether or not UTC timezone should be used for timestamps in logging messages. Defaults to false.",
"default": false
}
}
},
"JsonWriterOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"Encoder": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/definitions/JavaScriptEncoder"
}
]
},
"Indented": {
"type": "boolean"
},
"MaxDepth": {
"type": "integer",
"format": "int32"
},
"SkipValidation": {
"type": "boolean"
}
}
},
"JavaScriptEncoder": {
"allOf": [
{
"$ref": "#/definitions/TextEncoder"
},
{
"type": "object",
"x-abstract": true,
"additionalProperties": false
}
]
},
"TextEncoder": {
"type": "object",
"x-abstract": true,
"additionalProperties": false
},
"SimpleConsoleFormatterOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"ColorBehavior": {
"description": "Determines when to use color when logging messages.",
"oneOf": [
{
"$ref": "#/definitions/LoggerColorBehavior"
}
]
},
"SingleLine": {
"type": "boolean",
"description": "When false, the entire message gets logged in a single line."
},
"IncludeScopes": {
"type": "boolean",
"description": "Gets or sets whether scopes should be included or not."
},
"TimestampFormat": {
"type": [
"null",
"string"
],
"description": "Gets or sets the format string used to format the timestamp in logging messages. Defaults to null."
},
"UseUtcTimestamp": {
"type": "boolean",
"description": "Gets or sets whether or not UTC timezone should be used for timestamps in logging messages. Defaults to false.",
"default": false
}
}
},
"LoggerColorBehavior": {
"type": "string",
"description": "",
"x-enumNames": [
"Default",
"Enabled",
"Disabled"
],
"enum": [
"Default",
"Enabled",
"Disabled"
]
},
"ConsoleFormatterOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"IncludeScopes": {
"type": "boolean",
"description": "Gets or sets whether scopes should be included or not."
},
"TimestampFormat": {
"type": [
"null",
"string"
],
"description": "Gets or sets the format string used to format the timestamp in logging messages. Defaults to null."
},
"UseUtcTimestamp": {
"type": "boolean",
"description": "Gets or sets whether or not UTC timezone should be used for timestamps in logging messages. Defaults to false.",
"default": false
}
}
},
"AzureBlobEgressProviderOptions": {
"type": "object",
"description": "Egress provider options for Azure blob storage.",
"additionalProperties": false,
"required": [
"AccountUri",
"ContainerName"
],
"properties": {
"AccountUri": {
"type": "string",
"description": "The URI of the Azure blob storage account.",
"format": "uri",
"minLength": 1
},
"AccountKey": {
"type": [
"null",
"string"
],
"description": "The account key used to access the Azure blob storage account."
},
"AccountKeyName": {
"type": [
"null",
"string"
],
"description": "The name of the account key used to look up the value from the Egress options Properties map."
},
"SharedAccessSignature": {
"type": [
"null",
"string"
],
"description": "The shared access signature (SAS) used to access the Azure blob and optionally queue storage accounts."
},
"SharedAccessSignatureName": {
"type": [
"null",
"string"
],
"description": "The name of the shared access signature (SAS) used to look up the value from the Egress options Properties map."
},
"ManagedIdentityClientId": {
"type": [
"null",
"string"
],
"description": "Client id of the Managed Identity used for authentication. The identity must have permissions to create containers and write to blob storage."
},
"UseWorkloadIdentityFromEnvironment": {
"type": [
"boolean",
"null"
],
"description": "Uses WorkloadIdentity for authentication. The environment variables AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE, and AZURE_AUTHORITY_HOST are used to authenticate."
},
"ContainerName": {
"type": "string",
"description": "The name of the container to which the blob will be egressed. If egressing to the root container, use the \"$root\" sentinel value.",
"minLength": 1
},
"BlobPrefix": {
"type": [
"null",
"string"
],
"description": "The prefix to prepend to the blob name."
},
"CopyBufferSize": {
"type": [
"integer",
"null"
],
"description": "Buffer size used when copying data from an egress callback returning a stream to the egress callback that is provided a stream to which data is written.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"QueueName": {
"type": [
"null",
"string"
],
"description": "The name of the queue to which a message will be dispatched upon writing to a blob."
},
"QueueAccountUri": {
"type": [
"null",
"string"
],
"description": "The URI of the Azure queue storage account.",
"format": "uri"
},
"QueueSharedAccessSignature": {
"type": [
"null",
"string"
],
"description": "The shared access signature (SAS) used to access the Azure queue storage account."
},
"QueueSharedAccessSignatureName": {
"type": [
"null",
"string"
],
"description": "The name of the queue shared access signature (SAS) used to look up the value from the Egress options Properties map."
},
"Metadata": {
"type": [
"null",
"object"
],
"description": "A mapping of metadata keys to environment variable names. The values of the environment variables will be added as metadata for egressed artifacts.",
"additionalProperties": {
"type": "string"
}
}
}
},
"S3StorageEgressProviderOptions": {
"type": "object",
"description": "Egress provider options for S3 storage.",
"additionalProperties": false,
"required": [
"BucketName"
],
"properties": {
"Endpoint": {
"type": [
"null",
"string"
],
"description": "The endpoint of S3 to connect to. This is optional in case of using AWS storage."
},
"BucketName": {
"type": "string",
"description": "The name of the bucket used for storage",
"minLength": 1
},
"RegionName": {
"type": [
"null",
"string"
],
"description": "The name of the S3 region"
},
"AccessKeyId": {
"type": [
"null",
"string"
],
"description": "The AWS AccessKeyId for IAM user to login"
},
"SecretAccessKey": {
"type": [
"null",
"string"
],
"description": "The AWS SecretAccessKey associated AccessKeyId for IAM user to login"
},
"AwsProfileName": {
"type": [
"null",
"string"
],
"description": "The AWS profile name to be used for login"
},
"AwsProfilePath": {
"type": [
"null",
"string"
],
"description": "The AWS profile path, if profile details not stored in default path"
},
"PreSignedUrlExpiry": {
"type": [
"null",
"string"
],
"description": "The amount of time the generated pre-signed url will be accessible.",
"format": "duration"
},
"ForcePathStyle": {
"type": "boolean",
"description": "The boolean flag set for AWS connection configuration ForcePathStyle option."
},
"CopyBufferSize": {
"type": [
"integer",
"null"
],
"description": "Buffer size used when copying data from an egress callback returning a stream to the egress callback that is provided a stream to which data is written.",
"format": "int32",
"maximum": 2147483647.0,
"minimum": 1.0
},
"UseKmsEncryption": {
"type": "boolean",
"description": "A boolean flag which controls whether the Egress should use KMS server side encryption."
},
"KmsEncryptionKey": {
"type": [
"null",
"string"
],
"description": "If UseKmsEncryption is true, this specifies the arn of the \"customer managed\" KMS encryption key to be used for server side encryption. If no value is set for this field then S3 will use an AWS managed key for KMS encryption."
}
}
}
}
}