axiomhq/axiom-go

Ability to ingest OTEL data using proto format

Closed this issue · 2 comments

Is it possible to add ability to ingest to OTEL endpoint using proto format?

This is what I am currently using for one of my services to send logs:

req := plogotlp.NewExportRequestFromLogs(logs)
		data, err := req.MarshalProto()
		if err != nil {
			log.Println(err)
			return err
		}

		httpReq, err := http.NewRequest("POST", axiomUrl+"/v1/logs", bytes.NewBuffer(data))
		if err != nil {
			log.Println(err)
			return err
		}

		httpReq.Header.Set("X-Axiom-Dataset", axiomDatasetName)
		httpReq.Header.Set("X-Axiom-OrgId", axiomOrgId)
		httpReq.Header.Set("Authorization", "Bearer "+ axiomToken)
		httpReq.Header.Set("Content-Type", "application/x-protobuf")

		_, err = http.DefaultClient.Do(httpReq)
		if err != nil {
			log.Println(err)
			return err
		}

I think this is best left to the OTel SDK for Go. AFAIK, the latest release has some APIs for logs?

just checked, seems to still be in development. But I agree, OTel SDK makes more sense.