Configure Anomaly Detector univariate containers
Important
Starting on the 20th of September, 2023 you won’t be able to create new Anomaly Detector resources. The Anomaly Detector service is being retired on the 1st of October, 2026.
The Anomaly Detector container runtime environment is configured using the docker run
command arguments. This container has several required settings, along with a few optional settings. Several examples of the command are available. The container-specific settings are the billing settings.
Configuration settings
This container has the following configuration settings:
Required | Setting | Purpose |
---|---|---|
Yes | ApiKey | Used to track billing information. |
No | ApplicationInsights | Allows you to add Azure Application Insights telemetry support to your container. |
Yes | Billing | Specifies the endpoint URI of the service resource on Azure. |
Yes | Eula | Indicates that you've accepted the license for the container. |
No | Fluentd | Write log and, optionally, metric data to a Fluentd server. |
No | Http Proxy | Configure an HTTP proxy for making outbound requests. |
No | Logging | Provides ASP.NET Core logging support for your container. |
No | Mounts | Read and write data from host computer to container and from container back to host computer. |
Important
The ApiKey
, Billing
, and Eula
settings are used together, and you must provide valid values for all three of them; otherwise your container won't start. For more information about using these configuration settings to instantiate a container, see Billing.
ApiKey configuration setting
The ApiKey
setting specifies the Azure resource key used to track billing information for the container. You must specify a value for the ApiKey and the value must be a valid key for the Anomaly Detector resource specified for the Billing
configuration setting.
This setting can be found in the following place:
- Azure portal: Anomaly Detector's Resource Management, under Keys
ApplicationInsights setting
The ApplicationInsights
setting allows you to add Azure Application Insights telemetry support to your container. Application Insights provides in-depth monitoring of your container. You can easily monitor your container for availability, performance, and usage. You can also quickly identify and diagnose errors in your container.
The following table describes the configuration settings supported under the ApplicationInsights
section.
Required | Name | Data type | Description |
---|---|---|---|
No | InstrumentationKey |
String | The instrumentation key of the Application Insights instance to which telemetry data for the container is sent. For more information, see Application Insights for ASP.NET Core. Example: InstrumentationKey=123456789 |
Billing configuration setting
The Billing
setting specifies the endpoint URI of the Anomaly Detector resource on Azure used to meter billing information for the container. You must specify a value for this configuration setting, and the value must be a valid endpoint URI for an Anomaly Detector resource on Azure.
This setting can be found in the following place:
- Azure portal: Anomaly Detector's Overview, labeled
Endpoint
Required | Name | Data type | Description |
---|---|---|---|
Yes | Billing |
String | Billing endpoint URI. For more information on obtaining the billing URI, see gather required parameters. For more information and a complete list of regional endpoints, see Custom subdomain names for Azure AI services. |
Eula setting
The Eula
setting indicates that you've accepted the license for the container. You must specify a value for this configuration setting, and the value must be set to accept
.
Required | Name | Data type | Description |
---|---|---|---|
Yes | Eula |
String | License acceptance Example: Eula=accept |
Azure AI services containers are licensed under your agreement governing your use of Azure. If you do not have an existing agreement governing your use of Azure, you agree that your agreement governing use of Azure is the Azure Online Subscription Agreement, which incorporates the Online Services Terms. By using the container you agree to these terms.
Fluentd settings
Fluentd is an open-source data collector for unified logging. The Fluentd
settings manage the container's connection to a Fluentd server. The container includes a Fluentd logging provider, which allows your container to write logs and, optionally, metric data to a Fluentd server.
The following table describes the configuration settings supported under the Fluentd
section.
Name | Data type | Description |
---|---|---|
Host |
String | The IP address or DNS host name of the Fluentd server. |
Port |
Integer | The port of the Fluentd server. The default value is 24224. |
HeartbeatMs |
Integer | The heartbeat interval, in milliseconds. If no event traffic has been sent before this interval expires, a heartbeat is sent to the Fluentd server. The default value is 60000 milliseconds (1 minute). |
SendBufferSize |
Integer | The network buffer space, in bytes, allocated for send operations. The default value is 32768 bytes (32 kilobytes). |
TlsConnectionEstablishmentTimeoutMs |
Integer | The timeout, in milliseconds, to establish a SSL/TLS connection with the Fluentd server. The default value is 10000 milliseconds (10 seconds). If UseTLS is set to false, this value is ignored. |
UseTLS |
Boolean | Indicates whether the container should use SSL/TLS for communicating with the Fluentd server. The default value is false. |
Http proxy credentials settings
If you need to configure an HTTP proxy for making outbound requests, use these two arguments:
Name | Data type | Description |
---|---|---|
HTTP_PROXY | string | The proxy to use, for example, http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | string | Any credentials needed to authenticate against the proxy, for example, username:password . This value must be in lower-case. |
<proxy-user> |
string | The user for the proxy. |
<proxy-password> |
string | The password associated with <proxy-user> for the proxy. |
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \
Logging settings
The Logging
settings manage ASP.NET Core logging support for your container. You can use the same configuration settings and values for your container that you use for an ASP.NET Core application.
The following logging providers are supported by the container:
Provider | Purpose |
---|---|
Console | The ASP.NET Core Console logging provider. All of the ASP.NET Core configuration settings and default values for this logging provider are supported. |
Debug | The ASP.NET Core Debug logging provider. All of the ASP.NET Core configuration settings and default values for this logging provider are supported. |
Disk | The JSON logging provider. This logging provider writes log data to the output mount. |
This container command stores logging information in the JSON format to the output mount:
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output
This container command shows debugging information, prefixed with dbug
, while the container is running:
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug
Disk logging
The Disk
logging provider supports the following configuration settings:
Name | Data type | Description |
---|---|---|
Format |
String | The output format for log files. Note: This value must be set to json to enable the logging provider. If this value is specified without also specifying an output mount while instantiating a container, an error occurs. |
MaxFileSize |
Integer | The maximum size, in megabytes (MB), of a log file. When the size of the current log file meets or exceeds this value, a new log file is started by the logging provider. If -1 is specified, the size of the log file is limited only by the maximum file size, if any, for the output mount. The default value is 1. |
For more information about configuring ASP.NET Core logging support, see Settings file configuration.
Mount settings
Use bind mounts to read and write data to and from the container. You can specify an input mount or output mount by specifying the --mount
option in the docker run command.
The Anomaly Detector containers don't use input or output mounts to store training or service data.
The exact syntax of the host mount location varies depending on the host operating system. Additionally, the host computer's mount location may not be accessible due to a conflict between permissions used by the Docker service account and the host mount location permissions.
Optional | Name | Data type | Description |
---|---|---|---|
Not allowed | Input |
String | Anomaly Detector containers do not use this. |
Optional | Output |
String | The target of the output mount. The default value is /output . This is the location of the logs. This includes container logs. Example: --mount type=bind,src=c:\output,target=/output |
Example docker run commands
The following examples use the configuration settings to illustrate how to write and use docker run
commands. Once running, the container continues to run until you stop it.
- Line-continuation character: The Docker commands in the following sections use the back slash,
\
, as a line continuation character for a bash shell. Replace or remove this based on your host operating system's requirements. For example, the line continuation character for windows is a caret,^
. Replace the back slash with the caret. - Argument order: Do not change the order of the arguments unless you are very familiar with Docker containers.
Replace value in brackets, {}
, with your own values:
Placeholder | Value | Format or example |
---|---|---|
{API_KEY} | The endpoint key of the Anomaly Detector resource on the Azure Anomaly Detector Keys page. |
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | The billing endpoint value is available on the Azure Anomaly Detector Overview page. |
See gather required parameters for explicit examples. |
Note
New resources created after July 1, 2019, will use custom subdomain names. For more information and a complete list of regional endpoints, see Custom subdomain names for Azure AI services.
Important
The Eula
, Billing
, and ApiKey
options must be specified to run the container; otherwise, the container won't start. For more information, see Billing.
The ApiKey value is the Key from the Azure AI Anomaly Detector Resource keys page.
Anomaly Detector container Docker examples
The following Docker examples are for the Anomaly Detector container.
Basic example
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Logging example with command-line arguments
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector \
Eula=accept \
Billing={ENDPOINT_URI} ApiKey={API_KEY} \
Logging:Console:LogLevel:Default=Information