The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
library(googleErrorReportingR)
The following is a tutorial on how to use the
googleErrorReportingR
package inside a plumber API. even
though this is meant to be used in an API built using the plumber package, the same
logic can be used if you API is built with a different tool.
In your plumber.R
file define the central
characteristics of the error messages you will send from you API. We
suggest at least defining the following:
<- googleErrorReportingR::format_error_message()
message $serviceContext$service <- "api_name"
message$serviceContext$version <- "api_version" message
Nevertheless, if there are other charcateristics in
format_error_message()
that are the same for all errors
reported from your api, feel free to define them here.
You also need to indicate the error reporting API key and GCP
project_id
.
There are different ways to do this, if your API is hosted on Cloud
run, you can define them as environmental variables or secrets. If you
are using a start.sh
file, you can define them there es
environmental variables also.
The important thing is that they need to be define at a high level place that, from the moment the API is started, they are available. We strongly recommend you keep both of this elements in a secret manager like GCP’s and not as plain text values.
Note: is not recommended that you define them in a Dockerfile, it could lead to security issues.
The easiest way to catch errors from your endpoint is to
wrap the endpoint’s functionalities in a function and then wrap that
function in a tryCatch()
that sends an error if found.
The following is a minimal example of the usage of the error
reporting functionality, you can add as much of the
format_error_message()
parameters as you like:
<- tryCatch(
error_catcher_from_function your_function(your_parameters),
error = function(e) {
$message <- as.character(e)
message::report_error(message)
googleErrorReportingRstop("Error message to print", call. = FALSE)
})
Test your api by making a request that you know causes the wrapped function to fail and then go to your GCP’s error reporting interface and see the error there. Review how the different parameters translate in the interface and customize more if needed.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.