// 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; }
}
}