+ All Categories
Home > Technology > Api Statistics- The Scalable Way

Api Statistics- The Scalable Way

Date post: 26-Jan-2015
Category:
Upload: wso2
View: 341 times
Download: 5 times
Share this document with a friend
Description:
Sumedha Rubasinghe, Director of API Architecture presented this talk at the API Strategy & Practice Conference in Chicago where he illustrated how organisations can analyse who uses their APIs, while understanding how statistics help in capacity planning, deployment, maintain schedules and trend analyses as well as assist the decision-making process. The session discussed scalable collection of statistics for API ecosystems, key design considerations, real-time and offline analysis as well as WSO2’s approach for dealing with these challenges.
24
API Statistics – Scalable way Sumedha Rubasinghe (@sumedha_ruba) Director, API Architecture – WSO2 September, 2014
Transcript
Page 1: Api Statistics- The Scalable Way

API Statistics – Scalable way

Sumedha Rubasinghe (@sumedha_ruba)Director, API Architecture – WSO2

September, 2014

Page 2: Api Statistics- The Scalable Way

API Data Model• API Publisher• API• Documentation, SDK, etc• Version• Backend Endpoint• Lifecycle, workflow• Tier/Quota/Usage Plan• API Subscriber/Developer• Application• End User• Access Token• Request/Response

– Geo Location, User Agent, Application, Request time, Version, resource, etc

Page 3: Api Statistics- The Scalable Way

API Statistics “Summarized outcome of collecting & linking both runtime and static data associated with

API eco system..”

Page 4: Api Statistics- The Scalable Way

Why?..

“Evaluation of API initiative’s objective”“Usage Patterns for further improvements”

“Understand scaling requirements”“Fraud detection”

Page 5: Api Statistics- The Scalable Way

“(Statistics) scalability can have many faces.”

Page 6: Api Statistics- The Scalable Way

Source : http://www.slideshare.net/jmusser/j-musser-apibizmodels2013

Page 7: Api Statistics- The Scalable Way

WSO2 API Management Platform

Page 8: Api Statistics- The Scalable Way

API Management - Core Platform

Page 9: Api Statistics- The Scalable Way

API Gateway

Page 10: Api Statistics- The Scalable Way

Handler Architecture

Page 11: Api Statistics- The Scalable Way

Offline Processing

Page 12: Api Statistics- The Scalable Way

Collecting Statistics from API Runtime

Page 13: Api Statistics- The Scalable Way

Scaling Statistics CollectionAbility to push to multiple receivers, receiver groupsLocal persistence

Multiple Data ReceiversWorking in a cluster

Communication over Thrift

Apache Cassandra – High volume storage

Apache Hadoop cluster being used for analytics.Apache Hive as the analyzer engine.

Summarized Data – written to relation DB

1

2

5

4 6

3

Page 14: Api Statistics- The Scalable Way

Dashboards

Page 15: Api Statistics- The Scalable Way

Using Google Analytics

Page 16: Api Statistics- The Scalable Way

Online Processing

Page 17: Api Statistics- The Scalable Way

Events + Events -> Complex Events

Page 18: Api Statistics- The Scalable Way

WSO2 CEP Engine - Architecture

Page 19: Api Statistics- The Scalable Way

Siddhi Query - Structure

define stream <event stream>(<attribute> <type>,<attribute>

<type>, ...);

from <event stream>select <attribute>,<attribute>, ...insert into <event stream> ;

Page 20: Api Statistics- The Scalable Way

Siddhi Query - Examplesdefine stream TempStream

(deviceID long, roomNo int, temp double);

from TempStreamselect roomNo,

tempinsert into

OutputStream ;from TempStream [temp > 30.0 and roomNo != 2043]select roomNo, tempinsert into HotRoomsStream ;

from TempStream#window.time(1 min)select roomNo, avg(temp) as avgTempinsert into HotRoomsStream ;

from TempStreamselect roomNo, tempinsert into RoomTempStream ;

from TempStreamselect deviceID, tempinsert into DeviceTempStream ;

Page 21: Api Statistics- The Scalable Way

Query ScalingVertical Scaling

Horizontal Scaling

Page 22: Api Statistics- The Scalable Way

Availability

Execution plan in “RedundantNode” based distributed processing mode<executionPlan name="RedundantNodeExecutionPlan" statistics="enable" trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> ... <siddhiConfiguration> <property name="siddhi.enable.distributed.processing">RedundantNode</property> <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> </siddhiConfiguration> ...</executionPlan>

Page 23: Api Statistics- The Scalable Way

Siddhi Performance• Same JVM Performance (Siddhi with Esper) 4 core machine

– Filters 8M Events/Sec vs Esper 2M – Window 2.5M Events/Sec vs. Esper 1M– Patterns 1.4M Events/Sec about 10X faster

than Esper • Over the Network Performance (Using thrift

based WSO2 event format) • - 8 core machine

– Filter 0.25M (or 250K) Event/Sec

Page 24: Api Statistics- The Scalable Way

Future Directions

• Storm Integration• WSO2 Machine Learning Project


Recommended