Documentation


The cronimon API is a HTTP-based API and can be called from any application, programming language, operating system or web-browser.
You need to use it to send your state or event information to Cronimon. You can find snippets and libraries here.


Adding a data point

(Implicitly creates a data series based on the name parameter if required)

http://[YOUR USER ID].put.cronimon.com/
?name=[NAME OF YOUR DATA SERIES]
&value=[VALUE OF THE CURRENT DATA POINT]
&time=[TIME THE DATA POINT WAS CREATED]              

The name parameter is required to insert a data point, it is the identifier of the data series the data point is added to. Value can be an arbitrary floating point number. This is the value of the data you want to monitor - i.e. the price of a product you just sold. If value is omitted, it is set to "1" by default, implementing a simple counter. The user_id parameter is required to identify your account - it is also required. The time parameter is a Unix-Timestamp in seconds. If time is omitted the Cronimon server time will be used as the creation time of your data point.


You can add multiple values in a single HTTP-request:

http://[YOUR USER ID].put.cronimon.com/
?name[]=[DESCRIPTION OF YOUR DATA]
&value[]=[DATA POINT]
&time[]=[TIME THE DATA POINT WAS CREATED]            

The parameters name[], value[] and time[] are mandatory in this case. All arrays must be of the same size. The first name found in the request string is always mapped to the first value found. The second name found is mapped to the second value found and so on. You can add a maximum of 100 values in a single request. When adding multiple datapoints you will receive a returncode for every datapoint added (unless the error concerns the whole transaction).

Example: http://xyz.put.cronimon.com/?name[]=first_name&value[]=1&name[]=second_name&value[]=2


Returncodes:

 1   : Datapoint successfully added
-1   : No name given
-2   : Invalid value given
-3   : No User Id given
-5   : Invalid name given
-6   : Param-Count doesn't match (the arrays names, values and times need to be of the same size)
-7   : Max number of datapoints for insert in a single request exceeded (Currently this is 100)
-8   : Max Datapoints per day exceeded
-9   : Max number of dataseries exceeded, cannot create new data series
-10  : Invalid User
-11  : Max Datapoints per day exceeded
-120 : Couldn´t perform HTTP-Request
-127 : Socket timeout            



SmartCharts can be used in different ways:

  • As an embed object on a website
  • Dynamically created, using data series identifiers and a chart description object
  • In a Cronimon Dashboard


Embedding a SmartChart on a Website

Every SmartChart comes with an Embed-Code that allows to embed it on any website. You can find it in the chart list (Menu --> MySmartCharts):


or in the menu-bar of your chart:

.


Embedding charts can be useful if you want to present them to your users or if you want to integrate them with a pre existing solution (e.g. admin panels, statistics pages, ...).
To ensure data security, only data series that are declared public are shown in embedded charts.


Creating SmartCharts dynamically

In some cases you don´t want to manually specify a SmartChart but create it on the fly, just by passing the data series names and chart-specifications to the embed-object. This is useful if you have many data series with similar names (e.g. user_info_1, user_info_2, ...) and want to display the specific information i.e. to the user that is currently logged in: info1 to user1 and info2 to user2.

Dynamic charts can be created by adding a chart specification object externalSettings in JSON-Syntax to the embed code.


Example:

    <object width="520" height="390" type="application/x-shockwave-flash" id="_cw" 
            data="http://widgets.cronimon.com/CronimonWidget.swf">
      <param name="wmode" value="opaque" />
      <param name="movie" value="http://widgets.cronimon.com//CronimonWidget.swf" />
      <param name="allowFullScreen" value="true" />
      <param name="allowscriptaccess" value="always" />
      <param name="flashvars" value="externalSettings={
                                            'userId' : 'MyCronimonUserId', 
                                            'title' : 'Example Chart', 
                                            'description' : 'This is a dynamic Chart', 
                                            'chartSettings' : { 
                                               'series' : ['Example_1','Example_2'] 
                                            }
                                        }&server_url=widgets.cronimon.com/&host=http://" />
      <embed width="520" height="390" flashvars="
                                        externalSettings={
                                            'userId' : 'MyCronimonUserId', 
                                            'title' : 'Example Chart', 
                                            'description' : 'This is a dynamic Chart', 
                                            chartSettings' : { 
                                              'series' : ['Example_1','Example_2'] 
                                            }    
                                        }&server_url=widgets.cronimon.com/&host=http://" 
             wmode="opaque" allowscriptaccess="always" id="_cw" src="http://widgets.cronimon.com//CronimonWidget.swf" />
    </object>
  


The externalSettings object supports the following attributes:

externalSettings = {
  'title'         : 'ChartTitle',
  'titleBgColor'  : '0xffffff',
  'titleColor'    : '0x000000',
  'titleFontSize' : '18',
  
  'description'   : 'A Chart Description',

  'chartType'     : 1,                                        // 1: Line Chart, 2: Bar Chart, 3: Pie Chart
  
  'bgColor'       : '0xffffff',                               // chart background color
  
  'chartSettings' : {
    
    'series'                  : ['Series1','Series2', ...],   // Array of the data series names to display
    'timeLevel'               : 'current',                    // Pre selected time level 
                                                              // (current, minutes, hours, days, weeks, months)
                                                              
    'aggType'                 : 'avg',                        // Pre selected aggregation type (avg, count, sum, min, max)
    
    'seriesWeight'            : '1.5', 
    'seriesRadius'            : '2',                          // Size of data points
    'seriesForm'              : 'curve',                      // segment, curve, horizontal, reverseStep, step, vertical 
    'columnType'              : 'stacked',                    // Bar Charts only, 
                                                              // possible values: "stacked", "overlaid", "100percent"

    'lineColors'              : [                             // The line colors are applied to the respective data-series
        "0xff0000","0x00ff00","0x0000ff",                     // in the 'series' array
        "0xFAFA1B","0xFF8000","0xaa00aa",
        "0x870000","0x048200","0x000969"
    ],       
   
    
    'showAggregationControls' : 'true',
    'showTimelevelControls'   : 'true',
    
    'showLegend'              : 'true',
    'legendIconSize'          : '7',
    'legendFontSize'          : '10',
    'legendFontColor'         : '0x999999',
    'legendBorderColor'       : '0xEEEEEE',
    'legendDisabledColor'     : '0x888888',  
    
    'dataTipBackgroundColor'  : '0xffffff',
    'dataTipFontColor'        : '0x000000',
    'dataTipBorderWeight'     : '1.5',
    'dataTipBackgroundAlpha'  : '0.7',
    'dataTipWidth'            : '145',
    'dataTipHeight'           : '40',
    'dataTipRounding'         : '9'    
  }
}
  


Be aware that dynamic charts only exist on the page that contains the specific embed code. Dynamically created charts are not added to the list of your charts, available inside the Cronimon Login area.


Using a SmartChart in a Cronimon Dashboard

You can add any number of SmartCharts to a Cronimon Dashboard by clicking the "Add Chart" button and selecting the required SmartChart. Dashboards offer a convenient way to organize information about specific topic in Views and Tabs.