Date By Leanid Vouk Tags android / ios / http / performance / reliability / networking

At PacketZoom we collect billions of performance metrics from our users across the world every month. We use these data points to constantly improve our protocol-based service. In addition to that, we use this data to pupulate our customer dashboards to show speed increases, percent of rescued transfers, network packet-loss and other various useful data. Our customers love all of this fine grained performance info that's not readily available to them elsewhere. So then we started thinking, why not make all this information available to everyone? Free of cost!!

Today we're excited to announce early access program for our free http optimizer and analytics service which brings performance data to the surface and helps teams focus on ensuring users are getting a great experience. Our SDK, installed in your app uses an extremely lightweight, UDP based protocol to report performance data to our worldwide data collectors.

In addition, the SDK also also ensures that HTTP libraries in your app are using optimal http config parameters. Parameters like read timeout, connect timeout, write timeout, concurrency are tweaked based on current network conditions, location, signal strength instead of being just dumb hardcoded default values. You can also control local cache size (used by libraries like okHttp) dynamically using our dashboard.

The way we do metrics collection on client side has minimum impact on app performance. We send metric data via UDP protocol without blocking anything within the app, without creating extra threads or unnecessary HTTPS connections (like many other sdk's do these days). We're proud of the fact that our SDK is the absolute lightest weight solution for performance monitoring in terms of resource usage on the device or the user's network bandwidth.

Our web dashboard gives you detailed overview of following performance metrics:

See how API calls and 3rd party services are affecting your app. Quickly spot and resolve backend services problems and bottlenecks.

http errors

Slice performance by requests per minute, elapsed_time, failures, network type.

http perf

Understand how response time, data transfer, and network failures affect your app’s performance across different geographical regions.

http geo http geo

Get breakdowns of performance across each wireless carrier or network type where your apps are running. http distribution http network

Get a glimpse into DAU, session length metrics to analyze business impact of network performance. http network

As we get more feedback from the devs we'll continue adding new charts with even more detailed data.

Show me the code

SignUp for early access here

Put following code in your launcher activity or application class onCreate method:

PacketZoomClient.init(this, "generated app id", "generated api key");

//for OkHttp 2.7.5, 3.x you also need following line
new PZOptimizer().applyTo(okHttpClientInstance);

add dependency in build.gradle file

dependencies {
// your other dependencies
  compile ('com.packetzoom:pz-android-sdk:3.2+') {
}

// Only for OkHttp 3.x
  compile ('compile 'com.packetzoom:pz-okhttp3-interceptor:3.2.+') {
    transitive = true
}

// Only for OkHttp 2.7.x
  compile ('compile 'com.packetzoom:pz-okhttp-interceptor:3.2.+') {
    transitive = true
}

use the following proguard config:

-keep public class com.packetzoom.speed.** { *; }

Share On:


Comments

comments powered by Disqus