// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information. using System.Threading; namespace Microsoft.AspNet.SignalR.Infrastructure { /// /// Provides access to performance counters. /// public interface IPerformanceCounterManager { /// /// Initializes the performance counters. /// /// The host instance name. /// The CancellationToken representing the host shutdown. void Initialize(string instanceName, CancellationToken hostShutdownToken); /// /// Loads a performance counter. /// /// The category name. /// The counter name. /// The instance name. /// Whether the counter is read-only. IPerformanceCounter LoadCounter(string categoryName, string counterName, string instanceName, bool isReadOnly); /// /// Gets the performance counter representing the total number of connection Connect events since the application was started. /// IPerformanceCounter ConnectionsConnected { get; } /// /// Gets the performance counter representing the total number of connection Reconnect events since the application was started. /// IPerformanceCounter ConnectionsReconnected { get; } /// /// Gets the performance counter representing the total number of connection Disconnect events since the application was started. /// IPerformanceCounter ConnectionsDisconnected { get; } /// /// Gets the performance counter representing the number of connections currently connected. /// IPerformanceCounter ConnectionsCurrent { get; } /// /// Gets the performance counter representing the total number of messages received by connections (server to client) since the application was started. /// IPerformanceCounter ConnectionMessagesReceivedTotal { get; } /// /// Gets the performance counter representing the total number of messages received by connections (server to client) since the application was started. /// IPerformanceCounter ConnectionMessagesSentTotal { get; } /// /// Gets the performance counter representing the number of messages received by connections (server to client) per second. /// IPerformanceCounter ConnectionMessagesReceivedPerSec { get; } /// /// Gets the performance counter representing the number of messages sent by connections (client to server) per second. /// IPerformanceCounter ConnectionMessagesSentPerSec { get; } /// /// Gets the performance counter representing the total number of messages received by subscribers since the application was started. /// IPerformanceCounter MessageBusMessagesReceivedTotal { get; } /// /// Gets the performance counter representing the number of messages received by a subscribers per second. /// IPerformanceCounter MessageBusMessagesReceivedPerSec { get; } /// /// Gets the performance counter representing the number of messages received by the scaleout message bus per second. /// IPerformanceCounter ScaleoutMessageBusMessagesReceivedPerSec { get; } /// /// Gets the performance counter representing the total number of messages published to the message bus since the application was started. /// IPerformanceCounter MessageBusMessagesPublishedTotal { get; } /// /// Gets the performance counter representing the number of messages published to the message bus per second. /// IPerformanceCounter MessageBusMessagesPublishedPerSec { get; } /// /// Gets the performance counter representing the current number of subscribers to the message bus. /// IPerformanceCounter MessageBusSubscribersCurrent { get; } /// /// Gets the performance counter representing the total number of subscribers to the message bus since the application was started. /// IPerformanceCounter MessageBusSubscribersTotal { get; } /// /// Gets the performance counter representing the number of new subscribers to the message bus per second. /// IPerformanceCounter MessageBusSubscribersPerSec { get; } /// /// Gets the performance counter representing the number of workers allocated to deliver messages in the message bus. /// IPerformanceCounter MessageBusAllocatedWorkers { get; } /// /// Gets the performance counter representing the number of workers currently busy delivering messages in the message bus. /// IPerformanceCounter MessageBusBusyWorkers { get; } /// /// Gets the performance counter representing representing the current number of topics in the message bus. /// IPerformanceCounter MessageBusTopicsCurrent { get; } /// /// Gets the performance counter representing the total number of all errors processed since the application was started. /// IPerformanceCounter ErrorsAllTotal { get; } /// /// Gets the performance counter representing the number of all errors processed per second. /// IPerformanceCounter ErrorsAllPerSec { get; } /// /// Gets the performance counter representing the total number of hub resolution errors processed since the application was started. /// IPerformanceCounter ErrorsHubResolutionTotal { get; } /// /// Gets the performance counter representing the number of hub resolution errors per second. /// IPerformanceCounter ErrorsHubResolutionPerSec { get; } /// /// Gets the performance counter representing the total number of hub invocation errors processed since the application was started. /// IPerformanceCounter ErrorsHubInvocationTotal { get; } /// /// Gets the performance counter representing the number of hub invocation errors per second. /// IPerformanceCounter ErrorsHubInvocationPerSec { get; } /// /// Gets the performance counter representing the total number of transport errors processed since the application was started. /// IPerformanceCounter ErrorsTransportTotal { get; } /// /// Gets the performance counter representing the number of transport errors per second. /// IPerformanceCounter ErrorsTransportPerSec { get; } /// /// Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider. /// IPerformanceCounter ScaleoutStreamCountTotal { get; } /// /// Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the open state. /// IPerformanceCounter ScaleoutStreamCountOpen { get; } /// /// Gets the performance counter representing the number of logical streams in the currently configured scaleout message bus provider that are in the buffering state. /// IPerformanceCounter ScaleoutStreamCountBuffering { get; } /// /// Gets the performance counter representing the total number of scaleout errors since the application was started. /// IPerformanceCounter ScaleoutErrorsTotal { get; } /// /// Gets the performance counter representing the number of scaleout errors per second. /// IPerformanceCounter ScaleoutErrorsPerSec { get; } /// /// Gets the performance counter representing the current scaleout send queue length. /// IPerformanceCounter ScaleoutSendQueueLength { get; } } }