Ingest OpenTelemetry logs
curl --request POST \
--url https://api.lmnr.ai/v1/logs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/x-protobuf' \
--data '<string>'import requests
url = "https://api.lmnr.ai/v1/logs"
payload = "<string>"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/x-protobuf"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/x-protobuf'},
body: '<string>'
};
fetch('https://api.lmnr.ai/v1/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lmnr.ai/v1/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "<string>",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/x-protobuf"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lmnr.ai/v1/logs"
payload := strings.NewReader("<string>")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/x-protobuf")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lmnr.ai/v1/logs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/x-protobuf")
.body("<string>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lmnr.ai/v1/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/x-protobuf'
request.body = "<string>"
response = http.request(request)
puts response.read_body{
"error": "<string>"
}Ingestion
Ingest OpenTelemetry logs
Accepts an OTLP ExportLogsServiceRequest encoded as protobuf. JSON-encoded OTLP is not accepted. This endpoint is in beta: ingested logs are stored in the logs table and can only be queried with SQL. They are not shown anywhere in the Laminar UI, and Signals do not read them when analyzing traces.
POST
/
v1
/
logs
Ingest OpenTelemetry logs
curl --request POST \
--url https://api.lmnr.ai/v1/logs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/x-protobuf' \
--data '<string>'import requests
url = "https://api.lmnr.ai/v1/logs"
payload = "<string>"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/x-protobuf"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/x-protobuf'},
body: '<string>'
};
fetch('https://api.lmnr.ai/v1/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lmnr.ai/v1/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "<string>",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/x-protobuf"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lmnr.ai/v1/logs"
payload := strings.NewReader("<string>")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/x-protobuf")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lmnr.ai/v1/logs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/x-protobuf")
.body("<string>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lmnr.ai/v1/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/x-protobuf'
request.body = "<string>"
response = http.request(request)
puts response.read_body{
"error": "<string>"
}Authorizations
projectApiKeyingestApiKey
A Laminar project API key.
Body
application/x-protobuf
The body is of type string.
Response
Log batch accepted.