Architectural Overview

Overview

WeblogNG enables developers and operations engineers to understand the performance of mobile and html/javascript applications, as experienced by the end-user in production.

WeblogNG Architecture Diagram - Overview

Data flows from instrumented applications to a dashboard via the following process:

  1. developers instrument applications using a WeblogNG client library

  2. when customers use an instrumented application, data is reported by applications via websockets or http to the WeblogNG metrics api

  3. the WeblogNG metrics api collects the incoming metrics data by metric name

    1. the raw data is stored and made available for addition to a chart automatically

    2. the dashboard provides a chart-builder to configure a chart that transforms the collected metrics using an aggregation to help understand the performance indicated by that data in that time period:

    3. developers and operations engineers create and use WeblogNG dashboards to understand the

      end-user experience of their applications

    4. a dashboard will automatically update each chart with updated data as time passes

Supported Client Libraries

WeblogNG publishes and supports client libraries for the following platforms:

  • iOS
    • Requirements: iOS 6, 7, or 8
    • Get Started with iOS
  • Javascript
    • Requirements: a Javascript environment with WebSockets
    • Get Started with Javascript

Best Practices

Instrumentation

Time all (potentially) long-running operations, such as service or asset-loading requests and large render operations.

Measure the size of files and key business object collections.

Metric Naming

WeblogNG supports metric names that use alpha-numeric characters, hyphens, and underscores. i.e. characters that match a regex character class of: \w\d\-_. Other characters will be replaced with underscores.

Here are some examples of good metric names one might use while instrumenting an application’s ‘save’ process:

  • SampleApp-services-save-prepareRequest
  • SampleApp-services-save-http
  • SampleApp-services-save-handleResponse
  • SampleApp-services-save-total