Skip to content

Commit

Permalink
🔊 Add logs
Browse files Browse the repository at this point in the history
  • Loading branch information
nkmr-jp committed Jul 23, 2022
1 parent e901c2b commit 5a6a210
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 8 deletions.
40 changes: 35 additions & 5 deletions fetch.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,54 @@ import (
"github.com/googleapis/google-cloudevents-go/cloud/pubsub/v1"
"github.com/nkmr-jp/zl"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)

func init() {
initLogger()
functions.CloudEvent("Fetch", Run)
functions.CloudEvent("Fetch", Fetch)
}

func Run(ctx context.Context, event event.Event) error {
type Results []string

func (r Results) MarshalLogArray(enc zapcore.ArrayEncoder) error {
for _, u := range r {
enc.AppendString(u)
}
return nil
}

func Fetch(ctx context.Context, event event.Event) error {
defer zl.Sync() // Flush log file buffer. for debug in mac local.

bucket := getEnv()
urls := parseEvent(event)
if urls == nil {
return fmt.Errorf("urls is nil")
}

var success, failure int8
var results Results
for i := range urls {
gcsPath := parseURL(urls[i])
object := parseURL(urls[i])
buf := get(urls[i])
if err := save(ctx, bucket, gcsPath, buf); err != nil {
return err
if err := save(ctx, bucket, object, buf); err != nil {
failure++
results = append(results, fmt.Sprintf("failure: %s", object))
} else {
success++
results = append(results, fmt.Sprintf("success: %s", object))
}
time.Sleep(time.Second)
}

zl.Info(
"FETCH_COMPLETE",
zl.Console(fmt.Sprintf("success %d. failure %d.", success, failure)),
zap.String("bucket", bucket),
zap.Array("results", results),
)

return nil
}

Expand Down Expand Up @@ -162,10 +186,16 @@ func initLogger() {
zl.SetVersion(version)
zl.SetRepositoryCallerEncoder(urlFormat, version, srcRootDir)

// test
if strings.HasSuffix(os.Args[0], ".test") {
zl.SetRotateFileName("./log/test.jsonl")
}
// production
if os.Getenv("FUNCTION_TARGET") != "" {
zl.SetOutput(zl.ConsoleOutput)
zl.SetOmitKeys(zl.PIDKey, zl.HostnameKey)
}
zl.SetLevel(zl.DebugLevel)
zl.Init()
zl.Warn("TEST")
}
9 changes: 6 additions & 3 deletions fetch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/cloudevents/sdk-go/v2/event"
"github.com/googleapis/google-cloudevents-go/cloud/pubsub/v1"
fetch "github.com/nkmr-jp/gcf-fetch"
"github.com/nkmr-jp/zl"
"github.com/stretchr/testify/assert"
"google.golang.org/api/iterator"
)
Expand All @@ -24,13 +25,13 @@ func TestRun(t *testing.T) {
test.deleteObjects(ctx, "api.github.com")

// Send pubsub message1
if err := fetch.Run(ctx, test.event(pubsubData)); err != nil {
if err := fetch.Fetch(ctx, test.event(pubsubData)); err != nil {
assert.Fail(t, err.Error())
}
reader1 := test.getObject(ctx, objPath)

// Send pubsub message2
if err := fetch.Run(ctx, test.event(pubsubData)); err != nil {
if err := fetch.Fetch(ctx, test.event(pubsubData)); err != nil {
assert.Fail(t, err.Error())
}
reader2 := test.getObject(ctx, objPath)
Expand All @@ -45,7 +46,7 @@ https://api.github.com/users/github/followers
`
ctx := context.Background()
test.deleteObjects(ctx, "api.github.com")
if err := fetch.Run(ctx, test.event(pubsubData)); err != nil {
if err := fetch.Fetch(ctx, test.event(pubsubData)); err != nil {
assert.Fail(t, err.Error())
}

Expand All @@ -59,6 +60,8 @@ type TestFetch struct {
}

func NewTestFetch(t *testing.T) *TestFetch {
zl.SetRotateFileName("./test.jsonl")
zl.Init()
return &TestFetch{t}
}

Expand Down

0 comments on commit 5a6a210

Please sign in to comment.