What can we help you with?

Openmix App Library & API SDKs & Web Services

Learn how to use the Openmix libraries and APIs to make your own DNS or HTTP applications.

AppDynamics Integration

Git the code

Categories: APM, PerformanceApplication directory: apps/apm-appdynamics/

AppDynamics is an APM vendor focused on enterprise Java and .NET web applications. This app demonstrates using real time data from AppDynamics for decision making. Using FusionCustom, we will dynamically collect server health stats using a collector and basic HTTP authentication. This is a very simple example using current CPU threshold to switch between hosts. Refer to the wiki for details on URLs etc.

  • Last updated:
  • 01/22/2013
  • Created by:
  • Cedexis

Avoid CDN Bursting Charges by tracking MBPS via Fusion Data API

Git the code

Categories: PerformanceApplication directory: apps/fusion-cdn-avoid-bursting-mbps/

This version of the Optimal Round Trip Time application allows you track your monthly 95/5 MBPS usage via that CDN's API. If your usage exceeds your commit, penalize that CDN enough to avoid a bursting charge. Otherwise use the Optimal Round Trip time approach.

  • Last updated:
  • 01/13/2014
  • Created by:
  • Cedexis

Avoid CDN Bursting Charges by tracking monthly GB via Fusion Data API

Git the code

Categories: PerformanceApplication directory: apps/fusion-cdn-avoid-bursting-gb/

This version of the Optimal Round Trip Time application allows you track your monthly GB usage via that CDN's API. If your usage exceeds your commit, penalize that CDN enough to avoid a bursting charge. Otherwise use the Optimal Round Trip time approach.

  • Last updated:
  • 01/13/2014
  • Created by:
  • Cedexis

Avoid Platforms based on Geography

Git the code

Categories: Geography, PerformanceApplication directory: apps/avoid-by-geo/

You can choose to remove certain platforms from consideration based on geography. This example application shows you how to do that, wrapped in logic that chooses the available platform with the lowest response time.

  • Last updated:
  • 01/31/2012
  • Created by:
  • Cedexis

Avoid Platforms that are Overloaded

Git the code

Categories: Fusion, LoadApplication directory: apps/limit-load/

This app demonstrates using Pulse Load to obtain current load data for each provider. It uses this information to filter out providers that are currently overloaded. Of the remaining providers, it selects the best-performing one. If all providers are overloaded, it selects the best-performing overall.

Here is an example of a test object that works with this example script:

99

The entire content of the object is 99 and in this example it indicates a load value of 99 that will be parsed by the example.

  • Last updated:
  • 01/31/2012
  • Created by:
  • Cedexis

Avoid Platforms that have reached a cost threshold

Git the code

Categories: Fusion, CostApplication directory: apps/limit-money-spent/

This application demonstrates using Pulse Load to obtain cloud provider "cost", routing traffic away from a provider once it reaches a certain threshold. Any servers below the cost threshold will be load-balanced with origin based on round-trip time performance.

  • Last updated:
  • 01/31/2012
  • Created by:
  • Cedexis

Conditional Host Names

Git the code

Categories: Geography, PerformanceApplication directory: apps/conditional-host-name/

Some platforms use virtual-host specific hostnames, often for content localization, but you often want to centralize these into your Openmix script rather than creating many Openmix platforms. For example, imagine your website has the URLs http://<country>.example.com/ where <country> is replaced with ISO codes.

The solution is to dynamically construct the resulting hostname in the application as in this example application which routes traffic to the available platform with the lowest response time.

  • Last updated:
  • 01/31/2012
  • Created by:
  • Cedexis

Fusion Custom - Manage Cloud Instances externally

Git the code

Categories: Application directory: apps/maintain-external-destinations/

Demonstrates how to mix Radar performance data with a dynamically maintained list of Cloud Instances. Each cloud instance is associated with a Cloud Provider Region (like AWS US-East) for which we have Radar Performance data. Each instance also has a destination hostname or IP address and a "status". Openmix will first determine the least latent Cloud Region and then Round Robin within the specific Cloud Instances marked as "UP" in the destinations.txt file.

  • Last updated:
  • 03/23/2013
  • Created by:
  • Cedexis

Fusion Custom - cloud bursting with weighted round robin based on an instance health check

Git the code

Categories: Application directory: apps/maintain-external-and-fusion-capacity/

Demonstrates how to mix Radar performance data with a dynamically maintained list of Cloud Instances. Each cloud instance is associated with a Cloud Provider Region (like AWS US-East) for which we have Radar Performance data. Each instance also has a destination hostname or IP address and a "health" value (1-10). Openmix will first determine the health of all the instances in each region. Regions where instances are struggling will have a handicap applied to their Radar score. This will shed traffic away from struggling regions. Users are sent to least latent Cloud Region and then an instance within using a weighted round robin approach taking into account the instance health score.

  • Last updated:
  • 03/23/2013
  • Created by:
  • Cedexis

Fusion Data Example

Git the code

Categories: Application directory: apps/fusion-data-example/

A simple example of using Fusion Data within an Openmix script. Instead of making a decision this application simply responds with the values available in Fusion at the moment of the request.

  • Last updated:
  • 10/05/2012
  • Created by:
  • Cedexis

Load External Config

Git the code

Categories: Application directory: apps/load-external-config/

Demonstrates how to manage provider destination hostnames outside of the Openmix PHP. App uses Fusion Custom (AKA Pulse Load) to pull in a list of destinations linked to unique site names. Then, if a subdomain is appended to the Openmix name, it checks the subdomain against the site names in the file and modifies the destination returned.

  • Last updated:
  • 01/04/2013
  • Created by:
  • Cedexis

Market-Based Geo With Round-Robin

Git the code

Categories: Application directory: apps/market-based-with-round-robin/

Performs round-robin routing to a specific subset of providers based on the current request's market.

  • Last updated:
  • 12/05/2012
  • Created by:
  • Cedexis

Optimal Round Trip Time

Git the code

Categories: PerformanceApplication directory: apps/perf-and-availability/

This application is ideal for getting started with Openmix application development. It uses both latency and availability to determine which platform to direct requests to, and you can quickly change from using latency to some other measure of performance.

There is an Openmix Quick Start application type named 'Optimal Round Trip Time' that provides the same functionality.

  • Last updated:
  • 06/08/2012
  • Created by:
  • Cedexis

Optimal Round Trip Time With Penalty

Git the code

Categories: PerformanceApplication directory: apps/perf-and-availability-with-penalty/

This version of the Optimal Round Trip Time application allows you to set a percent based "handicap" for each provider. This should cause decisions to favor one or more providers.

  • Last updated:
  • 08/28/2012
  • Created by:
  • Cedexis

Performance with Geo Based Backup

Git the code

Categories: Radar, GeographyApplication directory: apps/perf-with-geo-backup/

This application demonstrates using Cedexis Radar as the primary way to select platforms, but where Geolocation data is used if there is inadequate radar data available.

  • Last updated:
  • 05/11/2012
  • Created by:
  • Cedexis

Performance with Penalty and Availability, Sticky Winner

Git the code

Categories: Application directory: apps/sticky-perf-with-penalty-and-availability/

Routes requests to the highest performing available platform, applying an optional handicap to each. Once a choice is made, stick with that choice until an alternative is significantly better or the original choice no longer exceeds the availability threshold.

Stickiness may optionally be limited to specific countries.

  • Last updated:
  • 10/8/2012
  • Created by:
  • Cedexis

Performance with Sticky Winner

Git the code

Categories: Application directory: apps/perf-with-sticky-choice/

Routes requests to the highest performing available platform, but once a choice is made stick with that choice until an alternative is significantly better or the original choice no longer exceeds the availability threshold.

  • Last updated:
  • 09/20/2012
  • Created by:
  • Cedexis

Route Based on Geography

Git the code

Categories: GeographyApplication directory: apps/geo-with-overides/

Demonstrates the basic use of geographic market and country data. Use Market data for most decsisions, but override certain countries.

Contributed by Jake Maul of Mozilla

  • Last updated:
  • 01/31/2012
  • Created by:
  • Jake Maul of Mozilla

Selectively Enable Platforms based on Day and Time

Git the code

Categories: Application directory: apps/selective_at_date_time/

This application selectively enables different platforms based on the time of day and day of week. It can be used with Fusion Custom to make it easy to update which platforms are included at different days and times.

  • Last updated:
  • 02/12/2013
  • Created by:
  • Cedexis

Session Persistence

Git the code

Categories: Application directory: apps/session-persistence/

Demonstrates how to use Radar performance data to reduce end-user latency while still ensuring session persistence by network.

  • Last updated:
  • 02/19/2013
  • Created by:
  • Cedexis

SoftLayer Integration

Git the code

Categories: Network, Real-timeApplication directory: apps/softlayer/

This app demonstrates using real time data from SoftLayer for decision making. Using FusionCustom, we will dynamically collect server network status over their REST API and depending on status, switch between hosts. SoftLayer exposes 100s of interesting methods in their API, including performance metrics that would allow for the detection of service disruptions or degradations and service data that can enable costs based traffic shaping scenarios based on aggregate consumption and bandwidth usage. Refer to the wiki for more details.

  • Last updated:
  • 01/24/2013
  • Created by:
  • Cedexis

Sticky, using preferred providers

Git the code

Categories: Application directory: apps/sticky-with-preferred/

A sticky choice application allowing you to select preferred providers for certain networks.

  • Last updated:
  • 10/11/2012
  • Created by:
  • Cedexis

Template

Git the code

Categories: Application directory: apps/template/

The most basic template for an Openmix application.

  • Last updated:
  • 05/21/2012
  • Created by:
  • Cedexis

Template

Git the code

Categories: Application directory: apps/reroute-on-fc-pct/

Using Fusion Custom data to provide current load data, route a percentage of traffic away from a datacenter as load there increases.

  • Last updated:
  • 04/22/2013
  • Created by:
  • Cedexis

Throughput with RTT Tie Breaker

Git the code

Categories: PerformanceApplication directory: apps/thruput-with-rtt/

Choose the best provider based on HTTP Throughput. If the top 2 are with 5% of each other, use HTTP Response time to break the tie.

  • Last updated:
  • 03/26/2012
  • Created by:
  • Cedexis

Use New Relic APM data to improve end-user experience

Git the code

Categories: FusionApplication directory: apps/new-relic/

New Relic and Cedexis have partnered to provide New Relic Standard to Cedexis customers at no charge. That's right — free application monitoring and troubleshooting for your applications when using Cedexis. Find out more and sign up now.

New Relic is a SaaS-based cloud application performance management provider that offers rich application performance data as part of its service. Cedexis Openmix can use this data to take action on the current state of your application as measured by New Relic. For example, if New Relic reports high CPU load on an application you can have Openmix direct traffic to a less loaded instance of your application.

This sample application demonstrates the use of New Relic data in an Openmix application.

  • Last updated:
  • 06/14/2012
  • Created by:
  • Cedexis

Weighted Round Robin with Sonar

Git the code

Categories: Application directory: apps/weighted-round-robin-with-sonar/

A weighted round robin application that takes Sonar availability scores into account.

  • Last updated:
  • 09/19/2012
  • Created by:
  • Cedexis
openmix

Openmix Apps & API

This API and library of Openmix applications provides examples to help you get started quickly and to give you ideas and best practices for your own applications. Explore the example applications, review the API, make them your own, and let us know if you have an application you would like added to the library. Pull requests gladly accepted.

web services

Web Services

Use these web services to access Radar data or read and update your Cedexis configurations programmatically. Documentation and examples are available and pull requests are gladly accepted.

ios sdk

iOS SDK

The Radar SDK includes a Cocoa Touch static library that you can incorporate into any iOS application.

android sdk

Android SDK

The Radar SDK includes a client library that you can easily incorporate into any Android mobile app.

python sdk

Python Library

This package provides a library that can be used to conduct Cedexis Radar measurements in any language that supports Python bindings. It also provides a script that can be used to run a Radar session from the command line.

The Cedexis development dream team

The folks are gittin' dirty every day

You

You

We're always looking

Want your own spot on the roster? We're always looking for new players! See open positions.

@cedexis

Josh Cody

Josh Cody

Senior Operations Engineer

I'm sick of following my dreams. I'm just going to ask them where they're going, and hook up with them later.

Jon Chase

Jon Chase

Sr. Software Engineer

Everything you read on the internet is true.

Neil Chazin

Neil Chazin

Sr. Software Engineer

The process of delving into the black abyss is to me the keenest form of fascination.

Megan Chinburg

Megan Chinburg

VP of Engineering

A boom box is not a toy.

Esteban Esperanza

Esteban Esperanza

Señor Operations Engineer

Code responsibly my friends.

Gregory Grillo

Gregory Grillo

Sr. Software Engineer

In order to understand recursion, one must first understand recursion.

Ben LeBlond

Ben LeBlond

Sr. Software Engineer

Les sanglots longs / des violons / de l'automne

Marty Kagan

Marty Kagan

Co-Founder and CEO

What do you mean it's not done yet?

@martykagan

Scot Kennedy

Scot Kennedy

Data Analysis Engineer

Quick! Roll a saving throw or take 3d6 damage from a Dire Bizinter.

Connor McLeod

Connor McLeod

Software Engineer

There can be only one.

Jacob Wan

Jacob Wan

Software Engineer

On Twitter

On Google+