# Go

### Installation

To install the Telemetry SDK for Go, use the following command:

```bash
go get github.com/telemetry-sh/telemetry-go
```

#### Usage

**Import Library**

```go
import (
    "fmt"
    "log"
    "time"

    "github.com/telemetry-sh/telemetry-go"
)
```

**Initialize Client**

```go
t := telemetry.NewTelemetry()
t.Init("YOUR_API_KEY") 
```

**Log Some Data**

Telemetry automatically creates tables when data is logged. In the following example, we log some Uber ride data to a table called `uber_rides`. Telemetry will automatically create this table and its corresponding schema with columns: `city`, `price`, and `timestamp`.

```go
data := map[string]interface{}{
    "city":      "paris",
    "price":     42,
    "timestamp": time.Now().Format(time.RFC3339), // Dynamically generate ISO 8601 timestamp
}

logResponse, err := t.Log("uber_rides", data)
if err != nil {
    log.Fatal("Error logging data:", err)
}
fmt.Println("Log response:", logResponse)
```

**Query Some Data**

You can query the data using SQL through the query API.

```go
query := `
    SELECT
        city,
        AVG(price) AS average_price
    FROM
        uber_rides
    GROUP BY
        city
`

queryResponse, err := t.Query(query)
if err != nil {
    log.Fatal("Error querying data:", err)
}
fmt.Println("Query response:", queryResponse)
```
