If you use the Axiom CLI, run
eval $(axiom config export -f)
to configure your environment variables.
package main
import (
"context"
"fmt"
"log"
"github.com/axiomhq/axiom-go/axiom"
"github.com/axiomhq/axiom-go/axiom/ingest"
)
func main() {
ctx := context.Background()
client, err := axiom.NewClient(
// If you don't want to configure your client using the environment,
// pass credentials explicitly:
// axiom.SetToken("xaat-xyz"),
)
if err != nil {
log.Fatal(err)
}
if _, err = client.IngestEvents(ctx, "my-dataset", []axiom.Event{
{ingest.TimestampField: time.Now(), "foo": "bar"},
{ingest.TimestampField: time.Now(), "bar": "foo"},
}); err != nil {
log.Fatal(err)
}
res, err := client.Query(ctx, "['my-dataset'] | where foo == 'bar' | limit 100")
if err != nil {
log.Fatal(err)
} else if res.Status.RowsMatched == 0 {
log.Fatal("No matches found")
}
rows := res.Tables[0].Rows()
if err := rows.Range(ctx, func(_ context.Context, row query.Row) error {
_, err := fmt.Println(row)
return err
}); err != nil {
log.Fatal(err)
}
}
For further examples, head over to the examples directory.
If you want to use a logging package, check if there is already an adapter in the adapters directory. We happily accept contributions for new adapters.
go get github.com/axiomhq/axiom-go
Read documentation on axiom.co/docs/guides/go.