How to monitor every call that is raised from proxy? and How does rate limiting work for social apis?

I have project that involves calling different types of social apis depending on different rate limit specified by the each individual site.

I would like to know

  • is it possible to set different rate limits to different users of my application through your proxy?
  • Do i have to register all of my users as apigee as the policy requires an 'identifier'?
  • Can i have the analytics from Apigee which could clearly shows how each site is reacting to my calls,when am hitting rate limit or errors etc?
  • We are planing to buy edge smb,does that help me with this?

@anilsagar, maybe you can provide answers?

Thanks.

Solved Solved
1 5 830
1 ACCEPTED SOLUTION

@archana ,

Great Questions, Answers are absolutely yes & all the features that you have requested are available in Apigee Edge out of the box.

Coming to your specific queries ,

How to monitor every call that is raised from proxy ?

  • Apigee analytics tracks every API call made to proxy and captures more than 100+ values for each api call like which app made the call, developer associated with the API call, which proxy , which target has been called, response time, proxy time take, target time taken etc etc.
  • You can also track custom data & send it to analytics for custom reports out of the box.
  • Interesting Analytic reports are available to see APIs & API Program functioning out of the box.

How does rate limiting works for social apis ?

  • We have many out of the box policies to do rate limiting & traffic management which includes Quota / Spike Arrest / Concurrent Connection Policy.
  • Rate limiting can be applied to any API Proxy created in Apigee
  • Rate limiting can be applied at App Level, Developer Level, User Level ,Product leve etc etc. It's very flexible & quick to implement same.

I would like to know is it possible to set different rate limits to different users of my application through your proxy ?

  • Yes, It's possible. Quota Policy has identifier using which you can have different limits for different users.

Do i have to register all of my users as apigee as the policy requires an 'identifier'?

  • You don't need to . As long as userid is available in the API request , you can rate limit based on the request parameters.

Can i have the analytics from Apigee which could clearly shows how each site is reactiong to my calls,when am hitting rate limit or errors etc?

  • Yes, Absolutely, Analytics reports are available out of the box where you can see traffic by response codes. You can also create custom reports quickly by custom dimensions like each site.

We are planning to buy edge smb, does that help me with this ?

  • Glad to hear that you are considering Apigee for API Management. Apigee is an Intelligent API Platform which helps you to build End to End digital value chain in API ecosystem.
  • Let us know how can we help you to get you started.

View solution in original post

5 REPLIES 5

@archana ,

Great Questions, Answers are absolutely yes & all the features that you have requested are available in Apigee Edge out of the box.

Coming to your specific queries ,

How to monitor every call that is raised from proxy ?

  • Apigee analytics tracks every API call made to proxy and captures more than 100+ values for each api call like which app made the call, developer associated with the API call, which proxy , which target has been called, response time, proxy time take, target time taken etc etc.
  • You can also track custom data & send it to analytics for custom reports out of the box.
  • Interesting Analytic reports are available to see APIs & API Program functioning out of the box.

How does rate limiting works for social apis ?

  • We have many out of the box policies to do rate limiting & traffic management which includes Quota / Spike Arrest / Concurrent Connection Policy.
  • Rate limiting can be applied to any API Proxy created in Apigee
  • Rate limiting can be applied at App Level, Developer Level, User Level ,Product leve etc etc. It's very flexible & quick to implement same.

I would like to know is it possible to set different rate limits to different users of my application through your proxy ?

  • Yes, It's possible. Quota Policy has identifier using which you can have different limits for different users.

Do i have to register all of my users as apigee as the policy requires an 'identifier'?

  • You don't need to . As long as userid is available in the API request , you can rate limit based on the request parameters.

Can i have the analytics from Apigee which could clearly shows how each site is reactiong to my calls,when am hitting rate limit or errors etc?

  • Yes, Absolutely, Analytics reports are available out of the box where you can see traffic by response codes. You can also create custom reports quickly by custom dimensions like each site.

We are planning to buy edge smb, does that help me with this ?

  • Glad to hear that you are considering Apigee for API Management. Apigee is an Intelligent API Platform which helps you to build End to End digital value chain in API ecosystem.
  • Let us know how can we help you to get you started.

Thanks for the detailed answer.Few more questions ,please bear with me.Let say i have 1to 5 user for my mobile app'X" .Evrytime the user calls my app i need to check where the user has reached rate limit in differnt social sites (dbcheck),if he has calls remaning then he can make it .This is what should happen .i have to define different set of rules for each user for each social site.I know that we can set rules but how will you identify my user ?how can i check unless i have db associated with proxy.Am i making any sense.These users register in my app which is outside portal and will start making calls.We will have an application in dev portal with proxy configured for this application.How are all these connect ?How do i proceed further .the work flow should be like

application->proxycall---->mybackbend---->proxy(ratelimitcheck,monitor)-------->social sites

same in the response process.do i need two different proxy ?Will this architecture work?What do you mean by userid ?whose userid do you need?

@archana ,

Let's take an example to understand it better.

Let's say Company X would like to create an API Platform & Expose the services that they have as REST APIs for better security, visibility, performance, governance, increase the business value by building developer / app ecosystem.

Let's say Company X has following APIs,

Social APIs

Payment APIs

User APIs

Product APIs

Company X has mobile APP , Let's say APP-X.

Company X uses Apigee Intelligent API Platform to create API Proxies that talks to backend APIs mentioned above. Let's take the Social APIs,

I believe when you mean different social sites, they are actually API resources under Social APIs. Please clarify if not. Are they apps / api resources / something else ?

  • Create an API Proxy named "Social APIs"
  • Add Quota Policy
    • Unique identifier will be sent part of the API request & same is referenced in quota policy in identifier element.
    • Let's say you will define quota of 1000/day.
    • You can have different quota policies attached to different API Resources (Social Sites.)
    • Apigee tracks the counter in cassandra db, you don't need to do anything. Quota limits, counters, enforcing limits functionality comes out of the box with Apigee.
  • Create an API Product called "Social APIs Product"
  • Create an APP called "APP-X"
    • Choose "Social APIs Product"

Let's say User 1 makes an API call from your APP-X, you will send some unique identifier associated with User 1 like id/username/email in the API request which will be used in Quota Policy as Quota Identifier. When API call goes through quota policy Apigee automatically updates the counter & does the quota check.

Hope it helps. Keep us posted if any.

Social apis are third party apis like facebook ,twitter etcall these are integrated into one application my on layer. Fb ,twitter and everything else has their own way of rate limiting at different levels as per their own api plan which i have to follow.Can i set that user-x can call "/v1/social/facebook/search" for 200 calls a day and same usesr-x can call /v1/social/facebook/post" for 10 calls and same usesr-x can call /v1/social/twitter/post" for 15 calls in 15 min so on.So now you ca where i am going with this.

Next if i say user-x with id"user@gmail.com" or some "x-user-token" all this will b saved in cassandra? now lets say with out any user level limit we have is i can only can get 200 calls matching to "v1/social/facebook" irrespective of who ever it is.the thing do i have to set these limits for each user manually.Where should i add all this code if i have to.

@archana , Yep , You can do that out of the box. You can have different quota policy attached to different resources.

Yes, All the identifiers & quota counters are stored and tracked by Apigee. You don't need to worry about same. Yep, you can also define global limits before user limits quota policy. You just need to add one more quota policy. That's it.

Have you tried Apigee Trial free developer version ? Also, I sent an email to you, Please reply to same so that we can help you get started.