AppBeat Blog

Perfect Monitoring for Your Cloud

Work in progress: installable smart agents for richer telemetry

We are planning to extend our platform with smart agents that can be installed on workstations or servers. We will provide for example CPU, memory, disk space monitoring, ..., with possibility to extend agent with custom logic to monitor virtually anything.

We plan to develop cross platform shared codebase with platform specific extensions. For example, here is example of simple implementation for Windows operating system, which uses Performance Counter to get CPU usage:

namespace AppBeat.Telemetry.Windows
{
    class CPU : AppBeat.Telemetry.Core.BaseResource, ITelemetryProvider
    {
        public ResourceValue GetValue()
        {
            return GetResourceValuePercentage(
                nameof(CPU),
                Utility.PerformanceCounter.GetValue(
                    Constants.PC_CATEGORY_PROCESSOR,
                    Constants.PC_COUNTER_NAME_PROCESSOR_TIME,
                    Constants.PC_INSTANCE
                )
            );
        }
    }
}

Strong emphasis is of course on security. Some security aspects:

  • Firewall friendly: no inbound connections will be made, instead all telemetry will be pushed from smart agent to AppBeat server (only outbound connections will be made)
  • All communication with AppBeat server is over secure SSL connection
  • Additional to that, all messages will also be encrypted by application (smart agent) by using your unique private key. This additionally protects you from man-in-the-middle attack.

This is still work in progress but we want to give you a glimpse of what we are doing :)

We have switched to BETA 2

In this version of AppBeat we primarily focused on some optimizations of our core monitor service. For example, our core now sends database updates much much efficiently. In each monitoring batch that we dispatch we have several checks. When those checks return result, our dispatcher manager packs all the results into single DataTable and sends it to database as Table-Valued Parameter. This means single roundtrip to database, instead of previously tens of single database updates.

We are close to releasing final version of AppBeat. Stay tuned!