NAV

Overview

Welcome to the Stado developer documentation, here you will find information on integrating with the Stado Service.

If you haven't already now is a good time to create a free account: https://stado.io/signup).

Game Engine Integrations

Stado provides first party integrations with Unity, Unreal and an easy to use open source native SDK for custom integrations.

Unity

Installation

Prerequisites:

You can either install the Stado Unity Integration through UPM or manually

Installing with UPM

Installing Manually:

Download the official Stado plugin from github and unzip the contents into the Packages folder of your Unity Project.

.
└───Assets
│
└───Library
│
└───Packages
    └───`stado-unity`

Unreal

Prerequisites:

Download the official Stado plugin from github and unzip the contents into the Plugins folder of your Unreal Project.

.
└───Config
│
└───Content
│
└───Plugins
│   └───`stado-unreal`
│
└───Source

Godot

Prerequisites:

Download the official Stado Godot plugin from github

Open Source

Prerequisites:

Examples:

Instant Issue Tracking

celc

celc [ Linux64 | macos | Win64 ] [ clang | gcc | vs2015 ]

$ celc -c 'file'

PlayTesting

External Testing

After long internal development cycles it is often beneficial to get external testers,

REST API | AnnotationComments

Create a new session annotation comment

Request

POST /api/v1/projects/{project}/sessions/:session_id/annotations/:annotation_id/comments

Parameters

Parameter Description In Type Required Default Example
session_annotation The annotation details body SessionAnnotationCommentRequest false {"text":"Example"}

Responses

Status Description Schema
201 Session annotation created OK SessionAnnotationCommentResponse
400 Bad Request

Example | POST /api/v1/projects/:project/sessions/:session/annotations/:annotation/comments

POST /api/v1/projects/some-title/sessions/2453583812202856462/annotations/204/comments
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test
{
  "body": "<p>testing creation of annotations</p>"
}

Response | status: 201

{
  "data": {
    "body": "<p>testing creation of annotations</p>",
    "id": 143,
    "inserted_at": "2024-08-19T15:36:31",
    "parent_id": null,
    "session_annotation_id": 204,
    "updated_at": "2024-08-19T15:36:31",
    "user": {
      "email": "some@email.com",
      "id": 697
    },
    "user_id": 697
  },
  "status": "ok"
}

Example | Failed POST /api/v1/projects/:project/sessions/:session/annotations missing body

POST /api/v1/projects/some-title/sessions/2453583801448660997/annotations/201/comments
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test

Response | status: 400

{
  "status": "[body: {\"can't be blank\", [validation: :required]}]"
}

Delete a Session annotation comment

Request

DELETE /api/v1/projects/:project_slug/sessions/:session_id/annotations/:annotation_id/comments/:comment_id

Parameters

Parameter Description In Type Required Default Example
session_id Session path integer true 123
annotation_id SessionAnnotation path integer true 123
comment_id SessionAnnotationComment path integer true 123

Responses

Status Description Schema
201 Comment deleted OK
204 No content

Example | DELETE /api/v1/projects/:project/sessions/:session/annotations/:annotation

DELETE /api/v1/projects/some-title/sessions/2453583815658962961/annotations/205/comments/144
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "status": ":ok"
}

List Sessions Annotation Comment Replies

List all sessions annotation replies to a comment

Request

GET /api/v1/projects/{project}/sessions/:session_id/annotations/:annotation_id/comments/:comment_id/replies

Parameters

Parameter Description In Type Required Default Example
session_id Session path integer true 123
annotation_id SessionAnnotation path integer true 123
comment_id SessionAnnotationComment path integer true 123

Responses

Status Description Schema
200 OK SessionAnnotationCommentsResponse

Example | GET /api/v1/projects/:project/sessions/:session/annotations/:annotation/comments/:comment/replies

GET /api/v1/projects/some-title/sessions/2453583805122871304/annotations/202/comments/140/replies
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": [
    {
      "body": "hello world",
      "id": 141,
      "inserted_at": "2024-08-19T15:36:31",
      "parent_id": 140,
      "session_annotation_id": 202,
      "updated_at": "2024-08-19T15:36:31",
      "user": {
        "email": "some@email.com",
        "id": 695
      },
      "user_id": 695
    }
  ],
  "status": "ok"
}

List Sessions Annotation Comments

List all sessions annotation comments for the annotation

Request

GET /api/v1/projects/{project}/sessions/:session_id/annotations/:annotation_id/comments

Parameters

Parameter Description In Type Required Default Example
session_id Session path integer true 123
annotation_id SessionAnnotation path integer true 123

Responses

Status Description Schema
200 OK SessionAnnotationCommentsResponse

Example | GET /api/v1/projects/:project/sessions/:session/annotations/:annotation/comments

GET /api/v1/projects/some-title/sessions/2453583796348387330/annotations/200/comments
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": [
    {
      "body": "hello world",
      "id": 139,
      "inserted_at": "2024-08-19T15:36:30",
      "parent_id": null,
      "session_annotation_id": 200,
      "updated_at": "2024-08-19T15:36:30",
      "user": {
        "email": "some@email.com",
        "id": 693
      },
      "user_id": 693
    }
  ],
  "status": "ok"
}

Show Session Annotation Comment

Show a session annotation comment by session id, annotation id and comment id

Request

GET /api/v1/projects/:project_slug/sessions/:session_id/annotations/:annotation_id/comments/:comment_id

Parameters

Parameter Description In Type Required Default Example
project_slug Project path string true my_test_project
session_id Session path integer true 123
annotation_id SessionAnnotation path integer true 123
comment_id SessionAnnotationComment path integer true 123

Responses

Status Description Schema
200 OK SessionAnnotationCommentResponse

Example | GET /api/v1/projects/:project/sessions/:session/annotations/:annotation/comments/:comment

GET /api/v1/projects/some-title/sessions/2453583808562200587/annotations/203/comments/142
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "body": "hello world",
    "id": 142,
    "inserted_at": "2024-08-19T15:36:31",
    "parent_id": null,
    "session_annotation_id": 203,
    "updated_at": "2024-08-19T15:36:31",
    "user": {
      "email": "some@email.com",
      "id": 696
    },
    "user_id": 696
  },
  "status": "ok"
}

REST API | Annotations

Create a new session annotation

Request

POST /api/v1/projects/{project}/sessions/:id/annotations

Parameters

Parameter Description In Type Required Default Example
session_annotation The annotation details body SessionAnnotationRequest false {"begin":32,"end":45,"text":"Example"}

Responses

Status Description Schema
201 Session annotation created OK SessionAnnotationResponse

Example | POST /api/v1/projects/:project/sessions/:session/annotations

POST /api/v1/projects/2453583850236805153/sessions/2453583850270359587/annotations
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test
{
  "begin": 32,
  "end": 43,
  "text": "testing"
}

Response | status: 201

{
  "data": {
    "begin": 32,
    "end": 43,
    "id": 207,
    "session_id": 2453583850270359587,
    "text": "testing",
    "user_id": 704
  },
  "status": "ok"
}

Delete a Session annotation

Request

DELETE /api/v1/projects/:project_id/sessions/:session_id/annotations/:annotation_id

Parameters

Parameter Description In Type Required Default Example
project_id Project path integer true 123
session_id Session path integer true 123
annotation_id SessionAnnotation path integer true 123

Responses

Status Description Schema
201 Issue deleted OK

Example | DELETE /api/v1/projects/:project/sessions/:session/annotations/:annotation

DELETE /api/v1/projects/2453583856662478887/sessions/2453583856696033321/annotations/209
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "status": ":ok"
}

Show Session Annotation

Show a session annotation by session id and annotation id

Request

GET /api/v1/projects/:project_id/sessions/:id/annotations/:annotation_id

Parameters

Parameter Description In Type Required Default Example
project_id Project path string true my_test_project
id Session path integer true 123
annotation_id SessionAnnotation path integer true 123

Responses

Status Description Schema
200 OK SessionAnnotationResponse

Example | GET /api/v1/projects/:project/sessions/:session/annotations/:annotation

GET /api/v1/projects/some-title/sessions/2453583853508362278/annotations/208
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "begin": 32,
    "end": 42,
    "id": 208,
    "session_id": 2453583853508362278,
    "text": "testing",
    "user_id": 705
  },
  "status": "ok"
}

Example | GET /api/v1/projects/:project/sessions/:session/annotations

GET /api/v1/projects/some-title/sessions/2453583846680035360/annotations
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": [
    {
      "begin": 32,
      "end": 42,
      "id": 206,
      "session_id": 2453583846680035360,
      "text": "testing",
      "user_id": 703
    }
  ],
  "status": "ok"
}

REST API | Devices

Create a new device

Request

POST /api/v1/users/:user_id/devices

Parameters

Parameter Description In Type Required Default Example
device The device details body DeviceRequest false {"name":"Johns Macbook 2019","platform_id":2}

Responses

Status Description Schema
201 Device created OK DeviceResponse

Example | POST /api/v1/users/:user_id/devices

POST /api/v1/devices
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test
{
  "name": "test",
  "platform_id": 22
}

Response | status: 201

{
  "data": {
    "id": 28,
    "name": "test",
    "platform": {
      "id": 22,
      "name": "Linux"
    },
    "secret": "S8ZShKIFx5DK6aWZhQOK1/c39b6VHwUXg5utR6dydNE="
  },
  "status": "ok"
}

Delete a device

Request

DELETE /api/v1/users/:user_id/devices/:device_id

Parameters

Parameter Description In Type Required Default Example
device The device details body DeviceRequest false {"name":"Johns Macbook 2019","platform_id":2}

Responses

Status Description Schema
200 Device created OK DeviceResponse

Example | DELETE /api/v1/users/:user_id/devices/:device

DELETE /api/v1/devices/30
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "id": 30,
    "name": "test",
    "platform": {
      "id": 24,
      "name": "Linux"
    },
    "secret": "kQzdu0cItS+vigyIRdbdnn3YGGKfzIrYmhi/eQALQ0Y="
  },
  "status": "ok"
}

Show Device

Show a device by device id

Request

GET /api/v1/users/:user_id/devices/:device_id

Parameters

Parameter Description In Type Required Default Example
user_id User path integer true 1232132
device_id Device path integer true 123

Responses

Status Description Schema
200 OK DeviceResponse

Example | GET /api/v1/users/:user_id/devices/:device_id

GET /api/v1/devices/29
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "id": 29,
    "name": "test",
    "platform": {
      "id": 23,
      "name": "Linux"
    },
    "secret": "AIkIt6AWTM1g751ie3WgXRs182E0pxBSefirL33d8NY="
  },
  "status": "ok"
}

Example | GET /api/v1/users/:user_id/devices

GET /api/v1/devices
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": [
    {
      "id": 26,
      "name": "Gamer PC",
      "platform": {
        "id": 21,
        "name": "Linux"
      },
      "secret": "nVXktGLJ8eAY31RvvmzWwTFgMVcrE4gU3TnB1dCHEEg="
    },
    {
      "id": 27,
      "name": "Laptop",
      "platform": {
        "id": 21,
        "name": "Linux"
      },
      "secret": "AJd1lftJQGTPBZj7b/4nRKDUoeEwD+8rDq+V8A3HRo0="
    }
  ],
  "status": "ok"
}

REST API | Issues

Create a new issue

Request

POST /api/v1/projects/{project}/issues

Parameters

Parameter Description In Type Required Default Example
issue The issue details body IssueRequest false {"title":"Acme Corp"}

Responses

Status Description Schema
201 Issue created OK IssueResponse

Example | POST /api/v1/projects/:project/issues

POST /api/v1/projects/some-title/issues
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test
{
  "title": "test"
}

Response | status: 201

{
  "data": {
    "issue_number": 1,
    "issue_sessions": [],
    "issue_state": {},
    "issue_state_id": null,
    "title": "test"
  },
  "status": "ok"
}

Example | POST /api/v1/projects/:project/issues with session

POST /api/v1/projects/some-title/issues
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test
{
  "session_id": 2453583939088941123,
  "title": "test"
}

Response | status: 201

{
  "data": {
    "issue_number": 1,
    "issue_sessions": [
      {
        "session_focus_begin": null,
        "session_focus_end": null,
        "session_id": "2453583939088941123"
      }
    ],
    "issue_state": {},
    "issue_state_id": null,
    "title": "test"
  },
  "status": "ok"
}

Delete an issue

Request

DELETE /api/v1/projects/{project}/issues/{issue}

Parameters

Parameter Description In Type Required Default Example
issue The issue details body IssueRequest false {"issue":{"title":"Acme Corp"}}

Responses

Status Description Schema
201 Issue deleted OK IssueResponse

Example | DELETE /api/v1/projects/:project/issues/:issue

DELETE /api/v1/projects/some-title/issues/1
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "status": ":ok"
}

List Issues

List all issues for the project in the database

Request

GET /api/v1/projects/{project}/issues

Responses

Status Description Schema
200 OK IssuesResponse

Example | GET /api/v1/projects/:project/issues

GET /api/v1/projects/some-title/issues
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": [
    {
      "issue_number": 1,
      "issue_sessions": [],
      "issue_state": {},
      "issue_state_id": null,
      "title": "test"
    }
  ],
  "status": "ok"
}

Show Issue

Show an issue by issue number

Request

GET /api/v1/projects/:project_slug/issues/:issue

Parameters

Parameter Description In Type Required Default Example
project_slug Project path string true mytestproject
issue_number Issue path integer true 123

Responses

Status Description Schema
200 OK IssueResponse

Example | GET /api/v1/projects/:project/issues/:issue

GET /api/v1/projects/some-title/issues/1
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "issue_number": 1,
    "issue_sessions": [],
    "issue_state": {},
    "issue_state_id": null,
    "title": "test"
  },
  "status": "ok"
}

REST API | Playtests

Create a new playtest

Request

POST /api/v1/projects/{project}/playtests

Parameters

Parameter Description In Type Required Default Example
playtest The playtest details body PlaytestRequest false {"playtest":{"title":"Acme Corp"}}

Responses

Status Description Schema
201 Playtest created OK PlaytestResponse

Example | POST /api/v1/projects/:project/playtests with session

POST /api/v1/projects/some-title/playtests
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test
{
  "session_id": 2453583913688236082,
  "title": "test"
}

Response | status: 201

{
  "data": {
    "description": "",
    "id": 39,
    "session_id": 2453583913688236082,
    "title": "test"
  },
  "status": "ok"
}

Delete a playtest

Request

DELETE /api/v1/projects/{project}/playtests/{playtest}

Parameters

Parameter Description In Type Required Default Example
playtest The playtest details body PlaytestRequest false {"playtest":{"title":"Acme Corp"}}

Responses

Status Description Schema
201 Playtest deleted OK PlaytestResponse

Example | DELETE /api/v1/projects/:project/playtests/:playtest

DELETE /api/v1/projects/some-title/playtests/41
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "status": ":ok"
}

List playtests

List all playtests for the project in the database

Request

GET /api/v1/projects/{project}/playtests

Responses

Status Description Schema
200 OK PlaytestsResponse

Example | GET /api/v1/projects/:project/playtests

GET /api/v1/projects/some-title/playtests
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": [
    {
      "description": "",
      "id": 37,
      "session_id": 2453583873322254380,
      "title": "test"
    }
  ],
  "status": "ok"
}

Show playtest

Show an playtest by id

Request

GET /api/v1/projects/{project}/playtests/:playtest

Parameters

Parameter Description In Type Required Default Example
id Playtest path integer true 123

Responses

Status Description Schema
200 OK PlaytestResponse

Example | GET /api/v1/projects/:project/playtests/:playtest

GET /api/v1/projects/some-title/playtests/40
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "description": "",
    "id": 40,
    "session_id": 2453583917177897013,
    "title": "test"
  },
  "status": "ok"
}

REST API | Project

Create a new project

Request

POST /api/v1/projects

Parameters

Parameter Description In Type Required Default Example
issue The issue details body ProjectRequest false {"title":"Acme Corp"}

Responses

Status Description Schema
201 Project created OK ProjectResponse

Example | POST /api/v1/projects

POST /api/v1/projects
accept: application/json
authorization: Bearer <YOUR-TOKEN>
content-type: multipart/mixed; boundary=plug_conn_test
{
  "title": "test"
}

Response | status: 201

{
  "data": {
    "id": 2453583993380012114,
    "title": "test"
  },
  "status": "ok"
}

REST API | Sessions

Count Session

Count number of sessions since

Request

GET /api/v1/projects/{project}/sessions/count

Parameters

Parameter Description In Type Required Default Example
project_id Project path integer true 123

Responses

Status Description Schema
200 OK CountResponse

Example | GET /api/v1/projects/:project/sessions/count

GET /api/v1/projects/some-title/sessions/count
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "count": 1
  },
  "status": "ok"
}

Get session metrics

Get metrics associated with session

Request

GET /api/v1/projects/:project_slug/sessions/{session_id}/metrics

Parameters

Parameter Description In Type Required Default Example
project_slug Project path string true my_test_project
session_id Session path integer true 123

Responses

Status Description Schema
200 OK MetricsResponse

Example | GET /api/v1/projects/:project_slug/sessions/:id/metrics

GET /api/v1/projects/2453583828493533205/sessions/2453583829332394007/metrics/fps
accept: application/json
authorization: Bearer <YOUR-TOKEN>

Response | status: 200

{
  "data": {
    "times": [],
    "values": []
  },
  "status": "ok"
}

REST | Models

CountResponse

Response schema for listing amount of a resource

Property Description Type Required
count Count integer false

Device

A gaming device

Property Description Type Required
id Device id integer false
name User defined name string false
platform An operating system platform Platform false
secret Device secret generated by the platform string false

DeviceRequest

Request schema for device

Property Description Type Required
name User defined name string false
platform_id The platform id integer false

DeviceResponse

Request schema for device

Property Description Type Required
data A gaming device Device false

DevicesResponse

Response schema for device

Property Description Type Required
data The Device details array(Device) false

Issue

An issue

Property Description Type Required
issue_number Issue number integer false
session_focus_begin Session focus begin integer false
session_focus_end Session focus end integer false
session_id Session id integer false
title Issue title string true

IssueRequest

Request schema for issue

Property Description Type Required
issue An issue Issue false

IssueResponse

Request schema for issue

Property Description Type Required
data An issue Issue false

IssuesResponse

Response schema for issue

Property Description Type Required
data The Issue details array(Issue) false

Metrics

Metrics package

Property Description Type Required
times Metric times array(any) false

MetricsResponse

Response schema for metrics

Property Description Type Required
data Metrics package Metrics false

Platform

An operating system platform

Property Description Type Required
id Platform id integer false
name User defined name string false

Playtest

An playtest

Property Description Type Required
description Playtest description string false
id id integer false
session_focus_begin Session focus begin integer false
session_focus_end Session focus end integer false
session_id Session id integer false
title Playtest title string true

PlaytestRequest

Request schema for playtest

Property Description Type Required
playtest An playtest Playtest false

PlaytestResponse

Response schema for playtest

Property Description Type Required
data An playtest Playtest false

PlaytestsResponse

Response schema for multiple playtests

Property Description Type Required
data The Playtest details array(Playtest) false

Project

A project

Property Description Type Required
title Project title string true

ProjectRequest

Request schema for project

Property Description Type Required
project A project Project false

ProjectResponse

Request schema for project

Property Description Type Required
data A project Project false

Session

An session

Property Description Type Required
engine Engine name string false
engine_version Engine version string false
id Session id integer false
os Operating System string false
os_version Operating System Version string false

SessionAnnotation

An annotation to a session

Property Description Type Required
begin Begin time of annotation integer false
end_time End time of annotation integer false
session_id Session id integer false
text Details string false
user_id Author id integer false

SessionAnnotationComment

A comment for a session annotation

Property Description Type Required
body Comment body string true
inserted_at Comment DB insertion time string true
session_annotation_id Session annotation id integer true
updated_at Comment DB update time string true
user_id Author id integer true

SessionAnnotationCommentRequest

Request schema for session annotation comment

Property Description Type Required
body Comment body string true
parent_id Parent comment id integer false
user_id Author id integer false

SessionAnnotationCommentResponse

Response schema for session annotation comment

Property Description Type Required
data A comment for a session annotation SessionAnnotationComment false

SessionAnnotationCommentsResponse

Response schema for session annotation comment

Property Description Type Required
data The Session annotation comment details array(SessionAnnotationComment) false

SessionAnnotationRequest

Request schema for session annotation

Property Description Type Required
begin Begin time of annotation integer true
end_time End time of annotation integer true
text Details string true

SessionAnnotationResponse

Response schema for session annotation

Property Description Type Required
data An annotation to a session SessionAnnotation false

SessionAnnotationsResponse

Response schema for session annotation

Property Description Type Required
data The Session annotation details array(SessionAnnotation) false

SessionRequest

Request schema for session

Property Description Type Required
session An session Session false

SessionResponse

Response schema for session

Property Description Type Required
data An session Session false

SessionsResponse

Response schema for session

Property Description Type Required
data The Session details array(Session) false

Native SDK

Prerequisites:

Supported Platforms:

Enums

stado_set_on_connected

Register a callback when the client succesfully connects to the server.

Decleration:

void stado_set_on_connected(stado_configuration* configuration, PFN_OnConnected _OnConnected);

Parameters

Parameter Description
stado_configuration* A pointer to the stado configuration struct.
PFN_OnConnected A function protoype with the following specs: 'void (uint64_t cid)'

Example


void onConnected(uint64_t cid)
{

}

stado_configuration configuration;

stado_set_on_connected(&configuration, onConnected);

stado_is_connected

Returns 1 when connected and 0 when disconnected.

Decleration:

int stado_is_connected(stado_context *context);

Parameters

Parameter Description
stado_context* A pointer to the stado initialization.

Example

stado_context context = {0};

if(stado_is_connected(stado_context *context))
{
    // Is connected
}

stado_update

This function updates the internal state of input and metric gathering.

Decleration:

stado_result stado_update(stado_context *context);

Parameters

Parameter Description
stado_context* A pointer to the stado initialization.

Example

stado_context context = {0};

// An example application loop
while(1)
{
    stado_update(stado_context *context);
}

stado_metric

Send a 64 bit float metric value to Stado. The value can later be displayed on dashboards.

Decleration:

stado_result stado_metric(stado_context *context, uint64_t ts, const char *id, int id_size, double val);

Parameters

Parameter Description
stado_context* A pointer to the stado initialization.
ts Timestamp for metric event, if zero gets current timestamp.
id String representing the lookup id.
id_size Size of string representing id.
val The value to be stored.

Example

stado_context context = {0};
// stado_init has to be called prior to stado_metric
char* metric_id = "example.metric";
stado_metric(&context, 0, 123, metric_id, strlen(metric_id));

stado_log

Send a log message.

Decleration:

stado_result stado_log(stado_context *context, enum stado_log_level level, const char *file, uint32_t line, uint64_t ts, const char *msg);

Parameters

Parameter Description
stado_context* A pointer to the stado initialization.
level Log level, can either be debug, info, warning, error
file The origin file.
line The line where logged.
ts Timestamp for log, if zero gets current timestamp.
msg The actual log message

Example

stado_context context = {0};
// stado_init has to be called prior to stado_metric
// 
stado_log(&context, STADO_LOG_LEVEL_INFO, __FILE__, __LINE__, 0, "Initializing subsystem");

stado_quit

Decleration:

void stado_quit(stado_context *context, enum stado_quit_reason quit_reason);

Parameters

Parameter Description
stado_context* A pointer to the stado initialization.
stado_quit_reason Specify why stado was shutdown.

Example

stado_context context = {0};
// stado_init has to be called prior to stado_quit
stado_quit(&context, STADO_QUIT_NORMAL);

Release Notes

Cel 0.1.3

General

Cel 0.1.2

General

Compiler

Node Graph

Cel 0.1.1

General

Compiler

CeL 0.1.0

Compiler

Node Graph

Cel 0.0.9

Node Graph

Cel 0.0.8

Node Graph

Cel 0.0.7

Node Graph

Cel 0.0.6

Node Graph

Cel 0.0.5

General

Node Graph

Cel 0.0.4

General

Node Graph

Cel 0.0.3

General

Node Graph

Cel 0.0.2

Node Graph

Cel 0.0.1

Node Graph