API reference
Logs API Reference
Get logs
Get logs allows you to query logs from the Metoro backend. You can filter logs based on time, service name, log attributes, resource attributes, and regexes. Results are limited to 100 logs per request, subsequent requests can be made by passing the prevEndTime
field in the request.
POST https://us-east.metoro.io/api/v1/logs
The body of the request should be a GetLogsRequest
object.
type GetLogsRequest struct {
// Start time of when to get the logs in seconds since epoch
StartTime int64 `json:"startTime"`
// End time of when to get the logs in seconds since epoch
EndTime int64 `json:"endTime"`
// The filters to apply to the logs, so for example, if you want to get logs for a specific service
// you can pass in a filter like {"service_name": ["microservice_a"]}
Filters map[string][]string `json:"filters"`
// ExcludeFilters are filters that should be excluded from the logs
// For example, if you want to get logs for all services except microservice_a you can pass in
// {"service_name": ["microservice_a"]}
ExcludeFilters map[string][]string `json:"excludeFilters"`
// Previous page endTime in nanoseconds, used to get the next page of logs if there are more logs than the page size
// If omitted, the first page of logs will be returned
PrevEndTime *int64 `json:"prevEndTime"`
// Regexes are used to filter logs based on a regex inclusively
Regexes []string `json:"regexes"`
// ExcludeRegexes are used to filter logs based on a regex exclusively
ExcludeRegexes []string `json:"excludeRegexes"`
// Ascending is used to sort the logs in ascending order. Default is descending
Ascending bool `json:"ascending"`
}
The response will be a GetLogsResponse
object.
type Log struct {
// The time that the log line was emitted in milliseconds since the epoch
Time int64 `json:"time"`
// The severity of the log line
Severity string `json:"severity"`
// The log message
Message string `json:"message"`
// The attributes of the log line
LogAttributes map[string]string `json:"logAttributes"`
// The attributes of the resource that emitted the log line
ResourceAttributes map[string]string `json:"resourceAttributes"`
// Service name
ServiceName string `json:"serviceName"`
}
type GetLogsResponse struct {
// The logs that match the filters
Logs []Log `json:"logs"`
}