Public Endpoint - Errors

This Error API endpoint is provided to add additional errors to AppSignal, where an existing integration can't be used or the language used isn't supported (yet).

Endpoint

Request method: POST

EndpointDescription
https://appsignal-endpoint.net/errorsAccepts JSON formatted data

URL parameters

ParameterTypeDescription
api_keyStringFront-end API key, can be found in App settings.
shell
https://appsignal-endpoint.net/errors?api_key=<api_key>

Body parameters

The post body should contain a JSON object, formatted as follows:

ParameterTypeDescription
timestampInteger(Epoch) timestamp when error occurred
actionString(Optional) Action name where error occurred (e.g. BlogpostController#show or UserInfoLambda#perform)
namespaceStringNamespace where error occurred (e.g. frontend or lambda )
errorErrorError object, see description below
revisionString(Optional) Full (GIT) revision hash of application
tagsObject<String, String>(Optional) Tags to filter the sample on, or to provide additional context. Make sure both key and values are strings (e.g. {"account_id": "abc-123"})
paramsObject<String, String>(Optional) Parameters that were given to the function where the error occurred. Make sure both key and values are strings (e.g. {"id": "abc-123"})
environmentObject<String, String>(Optional) Environment values that were set when the error occurred. Make sure both keys and values are strings (e.g. {"REGION": "eu-central-1"})
breadcrumbsArray<Breadcrumb>(Optional) Array of breadcrumbs, recorded before the error occurred. See below for description of Breadcrumb object
languageString(Optional) Language string, used to format the backtrace. Accepted values are ruby, javascript. Leave empty when using another language

Error:

ParameterTypeDescription
nameStringError name (e.g. StandardError)
messageString(Optional) Error message
backtraceArray<String>(Optional) Array of backtrace lines, each line should be a string

Breadcrumb:

ParameterTypeDescription
categoryStringCategory to label the event under (e.g. network or navigation)
actionStringContextual information related to the event
messageString(optional) A log message or other string to send to AppSignal
metadataObject<String, String>(optional) An object of metadata related to the event

For example:

json
{ "action": "BlogpostController#show", "namespace": "frontend", "timestamp": 1559201249, "error": { "name": "StandardError", "message": "Error message", "backtrace": ["backtrace/line:1", "backtrace/line:2"] }, "environment": { "os": "windows", "agent": "super secret user agent" }, "params": { "foo": "bar" }, "tags": { "account_id": "abc-123" }, "revision": "revision-abc", "breadcrumbs": [ { "timestamp": 1559201249, "category": "request", "action": "http://google.com", "message": "request failed", "metadata": { "code": "not_found" } } ], "language": "javascript" }

Example

ruby
require "uri" require "json" require "net/http" url = URI("https://appsignal-endpoint.net/errors?api_key=FRONTEND-API-KEY") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = "application/json" request.body = JSON.dump({ "action": "BlogpostController#show", "namespace": "frontend", "timestamp": 1640327525, "error": { "name": "StandardError", "message": "Error message", "backtrace": [ "backtrace/line:1", "backtrace/line:2" ] }, "environment": { "os": "windows", "agent": "super secret user agent" }, "params": { "foo": "bar" }, "tags": { "account_id": "abc-123" }, "revision": "revision-abc-123", "breadcrumbs": [ { "timestamp": 1640327525, "category": "request", "action": "http://google.com", "message": "request failed", "metadata": { "code": "not_found" } } ], "language": "javascript" }) response = https.request(request) puts response.read_body

Note: This endpoint is optimized for large amounts of traffic and does not validate the API key or payload, a 200 (OK) response is returned when the body size is within the 200k limit. This doesn't mean the request is accepted when received.