Dominic Tracey
Dominic Tracey

Reputation: 767

Logging to Stackdriver from Google Cloud Endpoints in Kubernetes pod

I'm having an issue logging to Stackdriver from my golang api. My configuration:

Code I'm using is like:

    api.Logger = func(text string, args ...interface{}) {
    ctx := context.Background()

    // Sets your Google Cloud Platform project ID.
    projectID := "my-project-name"

    // Creates a client.
    client, err := logging.NewClient(ctx, projectID)
    if err != nil {
        log.Fatalf("Failed to create client: %v", err)
    }

    // Sets the name of the log to write to.
    logName := "tried.various.different.names.with.no.luck"

    // Selects the log to write to.
    logger := client.Logger(logName)

    // Sets the data to log.
    textL := fmt.Sprintf(text, args...)

    // Adds an entry to the log buffer.
    logger.Log(logging.Entry{Payload: textL, Severity: logging.Critical})

    // Closes the client and flushes the buffer to the Stackdriver Logging
    // service.
    if err := client.Close(); err != nil {
        log.Fatalf("Failed to close client: %v", err)
    }

    fmt.Printf("Logged: %v\n", textL)

}

I don't need error reporting at the moment as I'm just evaluating - I'd be happy with just sending unstructured text. But it's not clear whether I need to do something like Boris' discussion on error reporting/stack traces from Kubernetes pods just to get that?

Upvotes: 2

Views: 676

Answers (2)

Slavkó Medvediev
Slavkó Medvediev

Reputation: 1571

Had similar issue with Golang app in Cloud Run.
To find stackdriver logs you have to specify filter resource.type = "project" in Logs Viewer

Upvotes: 0

Jassob
Jassob

Reputation: 36

Log entries created with the Stackdriver logging client does not seem to be categorized under any of the predefined categories, making it very difficult to find in Logs Viewer's basic mode.

Try to access Logs Viewer "advanced filter interface" by converting the query to a advanced filter and create the following filter:

logName:"projects/my-project-name/logs/tried.various.different.names.with.no.luck"

That worked for me at least.

Upvotes: 2

Related Questions