ServiceControl can be configured to use one of the supported message transports which are configured for each instance type using the following settings:
- ServiceControl (Error) instance:
ServiceControl/
TransportType - Audit instance:
ServiceControl.
Audit/ TransportType - Monitoring instance:
Monitoring/
TransportType
The value for the TransportType
settings can be any of the following:
Message Transport | TransportType values |
---|---|
Azure Service Bus | NetStandardAzureServiceBus |
Azure Storage Queues | AzureStorageQueue |
Amazon Simple Queue Service (SQS) | AmazonSQS |
RabbitMQ See topology options below. | RabbitMQ. RabbitMQ. RabbitMQ. RabbitMQ. |
SQL Server | SQLServer |
PostgreSQL | PostgreSQL |
Microsoft Message Queuing (MSMQ) | MSMQ |
Follow the link for each transport for additional information on configuration options for that transport lower on this page.
Azure Service Bus
In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 4.4 and above:
TransportType=AmqpWebSockets
- Configures the transport to use AMQP over websockets.TopicName=
- Specifies the topic name to be used by the instance. The default value is<topic-bundle-name> bundle-1
.QueueLengthQueryDelayInterval=
- Specifies the delay between queue length refresh queries for queue length monitoring. The default value is 500 ms.<value_in_milliseconds>
As of version 4.21.8 of ServiceControl, the following options can be used to enable Managed Identity authentication:
- Setting the connection string to a fully-qualified namespace (eg.
my-namespace.
)servicebus. windows. net - With this setting, a
DefaultAzureCredential
will be used. - No connection string options can be used when using a fully-qualified namespace.
- With this setting, a
- Specifying the connection string option
Authentication=Managed Identity
- The fully-qualified namespace will be parsed from the
Endpoint=sb:/
connection string option/ my-namespace. servicebus. windows. net/ - When specifying managed identity for the connection string, a
ManagedIdentityCredential
will be used. - Set the
ClientId=some-client-id
connectionstring option to use a specific user-assigned identity
- The fully-qualified namespace will be parsed from the
As of versions 4.33.3 and 5.0.5 of ServiceControl, support for partitioned entities can be enabled by adding the following connection string parameter:
EnablePartitioning=
— Configures the transport to create entities that support partitioning. The default value is<True|False> false
.
Azure Storage Queues
ServiceControl does not add any connection settings beyond the Azure Storage connection string.
RabbitMQ
RabbitMQ contains different TransportType
options based on the topology and queue type used by the system:
Queue Type | Topology | TransporType value |
---|---|---|
Quorum | Conventional | RabbitMQ. (Preferred) |
Quorum | Direct | RabbitMQ. |
Classic | Conventional | RabbitMQ. |
Classic | Direct | RabbitMQ. |
In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 4.4 and above:
UseExternalAuthMechanism=true|false(default)
- Specifies that an external authentication mechanism should be used for client authentication.DisableRemoteCertificateValidation=true|false(default)
- Allows ServiceControl to connect to the broker even if the remote server certificate is invalid.
SQL
In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 4.4 and above:
Queue Schema=
- Specifies custom schema for the ServiceControl input queue.<schema_name> Subscriptions Table=
- Specifies SQL subscription table name.<subscription_table_name> - Optional
Subscriptions Table=
- to specify the schema.<subscription_table_name>@ <schema> - Optional
Subscriptions Table=
- to specify the schema and catalog.<subscription_table_name>@ <schema>@ <catalog>
- Optional
PostgreSQL
In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 5.10 and above:
Queue Schema=
- Specifies a custom schema for the ServiceControl input queue.<schema_name> Subscriptions Table=
- Specifies PostgreSQL subscription table name.<subscription_table_name> - Optional
Subscriptions Table=schema.
- to specify the schema with simple table name.tablename - Optional
Subscriptions Table=schema.
- to specify the schema with a table name containingmulti. table. name .
. - Optional
Subscriptions Table=="multi.
- to specify a table name containingtable. name=" .
without a schema. In this case,Queue Schema
will be used if specified, otherwise the default schema (public
) will be used.
- Optional
Amazon SQS
The following ServiceControl connection string options are available:
AccessKeyId=
- AssessKeyId value,<value> SecretAccessKey=
- SecretAccessKey value,<value> Region=
- Region transport option,<value> QueueNamePrefix=
- Queue name prefix transport option,<value> TopicNamePrefix=
- Topic name prefix transport option<value> S3BucketForLargeMessages=
- S3 bucket for large messages option,<value> S3KeyPrefix=
- S3 key prefix option.<value> DoNotWrapOutgoingMessages=true
- Do not wrap outgoing messages option.
When using SQS as a transport, for local development purposes it is possible to set up ServiceControl to connect to a LocalStack instance. Refer to the documentation about how to configure the environment to use LocalStack.
MSMQ
To configure MSMQ as the transport, ensure the MSMQ service has been installed and configured as outlined in MSMQ configuration.
When ServiceControl instances are installed on a different machine than an endpoint queuename@machinename
addresses must be used.
MSMQ transport is not available when running ServiceControl on containers.