Skip to content

Commit f182441

Browse files
authored
feature(apphealth&configuration): add app health check & adapt new configuration API (dapr#323)
* fix/typo: modify state annotation Signed-off-by: 1046102779 <seachen@tencent.com> * feature(apphealth): add app health check Signed-off-by: 1046102779 <seachen@tencent.com> * feature(apphealth): add app health check Signed-off-by: 1046102779 <seachen@tencent.com> * feature(apphealth): add app health check Signed-off-by: 1046102779 <seachen@tencent.com> * feature(apphealth): add app health check Signed-off-by: 1046102779 <seachen@tencent.com> * feature(apphealth): add app health check Signed-off-by: 1046102779 <seachen@tencent.com> Signed-off-by: 1046102779 <seachen@tencent.com>
1 parent c89770a commit f182441

33 files changed

+2187
-787
lines changed

client/actor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import (
2222
anypb "github.com/golang/protobuf/ptypes/any"
2323
"github.com/pkg/errors"
2424

25-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
2625
"github.com/dapr/go-sdk/actor"
2726
"github.com/dapr/go-sdk/actor/codec"
2827
"github.com/dapr/go-sdk/actor/config"
28+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
2929
)
3030

3131
type InvokeActorRequest struct {

client/binding.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818

1919
"github.com/pkg/errors"
2020

21-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
21+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
2222
)
2323

2424
// InvokeBindingRequest represents binding invocation request.

client/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232
"google.golang.org/grpc/metadata"
3333
"google.golang.org/protobuf/types/known/emptypb"
3434

35-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
35+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
3636

3737
// used to import codec implements.
3838
_ "github.com/dapr/go-sdk/actor/codec/impl"
@@ -121,7 +121,7 @@ type Client interface {
121121
GetConfigurationItem(ctx context.Context, storeName, key string, opts ...ConfigurationOpt) (*ConfigurationItem, error)
122122

123123
// GetConfigurationItems can get a list of configuration item by storeName and keys
124-
GetConfigurationItems(ctx context.Context, storeName string, keys []string, opts ...ConfigurationOpt) ([]*ConfigurationItem, error)
124+
GetConfigurationItems(ctx context.Context, storeName string, keys []string, opts ...ConfigurationOpt) (map[string]*ConfigurationItem, error)
125125

126126
// SubscribeConfigurationItems can subscribe the change of configuration items by storeName and keys, and return subscription id
127127
SubscribeConfigurationItems(ctx context.Context, storeName string, keys []string, handler ConfigurationHandleFunction, opts ...ConfigurationOpt) error

client/client_test.go

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
"fmt"
2020
"net"
2121
"os"
22-
"strconv"
2322
"sync"
2423
"testing"
2524
"time"
@@ -33,8 +32,8 @@ import (
3332
"google.golang.org/grpc/test/bufconn"
3433
"google.golang.org/protobuf/types/known/anypb"
3534

36-
commonv1pb "github.com/dapr/dapr/pkg/proto/common/v1"
37-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
35+
commonv1pb "github.com/dapr/go-sdk/dapr/proto/common/v1"
36+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
3837
)
3938

4039
const (
@@ -408,12 +407,11 @@ func (s *testDaprServer) GetConfigurationAlpha1(ctx context.Context, in *pb.GetC
408407
if in.GetStoreName() == "" {
409408
return &pb.GetConfigurationResponse{}, errors.New("store name notfound")
410409
}
411-
items := make([]*commonv1pb.ConfigurationItem, 0)
410+
items := make(map[string]*commonv1pb.ConfigurationItem)
412411
for _, v := range in.GetKeys() {
413-
items = append(items, &commonv1pb.ConfigurationItem{
414-
Key: v,
412+
items[v] = &commonv1pb.ConfigurationItem{
415413
Value: v + valueSuffix,
416-
})
414+
}
417415
}
418416
return &pb.GetConfigurationResponse{
419417
Items: items,
@@ -432,13 +430,11 @@ func (s *testDaprServer) SubscribeConfigurationAlpha1(in *pb.SubscribeConfigurat
432430
return nil
433431
default:
434432
}
435-
items := make([]*commonv1pb.ConfigurationItem, 0)
433+
items := make(map[string]*commonv1pb.ConfigurationItem)
436434
for _, v := range in.GetKeys() {
437-
items = append(items, &commonv1pb.ConfigurationItem{
438-
Key: v,
439-
Value: v + "_" + strconv.Itoa(i),
440-
},
441-
)
435+
items[v] = &commonv1pb.ConfigurationItem{
436+
Value: v + valueSuffix,
437+
}
442438
}
443439
if err := server.Send(&pb.SubscribeConfigurationResponse{
444440
Id: id.String(),

client/configuration.go

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ import (
77

88
"github.com/pkg/errors"
99

10-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
10+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
1111
)
1212

1313
type ConfigurationItem struct {
14-
Key string
1514
Value string
1615
Version string
1716
Metadata map[string]string
@@ -33,10 +32,11 @@ func (c *GRPCClient) GetConfigurationItem(ctx context.Context, storeName, key st
3332
if len(items) == 0 {
3433
return nil, nil
3534
}
36-
return items[0], nil
35+
36+
return items[key], nil
3737
}
3838

39-
func (c *GRPCClient) GetConfigurationItems(ctx context.Context, storeName string, keys []string, opts ...ConfigurationOpt) ([]*ConfigurationItem, error) {
39+
func (c *GRPCClient) GetConfigurationItems(ctx context.Context, storeName string, keys []string, opts ...ConfigurationOpt) (map[string]*ConfigurationItem, error) {
4040
metadata := make(map[string]string)
4141
for _, opt := range opts {
4242
opt(metadata)
@@ -50,19 +50,18 @@ func (c *GRPCClient) GetConfigurationItems(ctx context.Context, storeName string
5050
return nil, err
5151
}
5252

53-
configItems := make([]*ConfigurationItem, 0)
54-
for _, v := range rsp.Items {
55-
configItems = append(configItems, &ConfigurationItem{
56-
Key: v.Key,
53+
configItems := make(map[string]*ConfigurationItem)
54+
for k, v := range rsp.Items {
55+
configItems[k] = &ConfigurationItem{
5756
Value: v.Value,
5857
Version: v.Version,
5958
Metadata: v.Metadata,
60-
})
59+
}
6160
}
6261
return configItems, nil
6362
}
6463

65-
type ConfigurationHandleFunction func(string, []*ConfigurationItem)
64+
type ConfigurationHandleFunction func(string, map[string]*ConfigurationItem)
6665

6766
func (c *GRPCClient) SubscribeConfigurationItems(ctx context.Context, storeName string, keys []string, handler ConfigurationHandleFunction, opts ...ConfigurationOpt) error {
6867
metadata := make(map[string]string)
@@ -91,14 +90,13 @@ func (c *GRPCClient) SubscribeConfigurationItems(ctx context.Context, storeName
9190
break
9291
}
9392
subscribeID = rsp.Id
94-
configurationItems := make([]*ConfigurationItem, 0)
95-
for _, v := range rsp.Items {
96-
configurationItems = append(configurationItems, &ConfigurationItem{
97-
Key: v.Key,
93+
configurationItems := make(map[string]*ConfigurationItem)
94+
for k, v := range rsp.Items {
95+
configurationItems[k] = &ConfigurationItem{
9896
Value: v.Value,
9997
Version: v.Version,
10098
Metadata: v.Metadata,
101-
})
99+
}
102100
}
103101
handler(rsp.Id, configurationItems)
104102
}

client/configuration_test.go

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package client
22

33
import (
44
"context"
5-
"strconv"
65
"testing"
76
"time"
87

@@ -33,11 +32,12 @@ func TestGetConfigurationItem(t *testing.T) {
3332
func TestGetConfigurationItems(t *testing.T) {
3433
ctx := context.Background()
3534

35+
keys := []string{"mykey1", "mykey2", "mykey3"}
3636
t.Run("Test get configuration items", func(t *testing.T) {
37-
resp, err := testClient.GetConfigurationItems(ctx, "example-config", []string{"mykey1", "mykey2", "mykey3"})
37+
resp, err := testClient.GetConfigurationItems(ctx, "example-config", keys)
3838
assert.Nil(t, err)
39-
for i, v := range resp {
40-
assert.Equal(t, "mykey"+strconv.Itoa(i+1)+valueSuffix, v.Value)
39+
for _, k := range keys {
40+
assert.Equal(t, k+valueSuffix, resp[k].Value)
4141
}
4242
})
4343
}
@@ -47,12 +47,13 @@ func TestSubscribeConfigurationItems(t *testing.T) {
4747

4848
counter := 0
4949
totalCounter := 0
50+
keys := []string{"mykey1", "mykey2", "mykey3"}
5051
t.Run("Test subscribe configuration items", func(t *testing.T) {
5152
err := testClient.SubscribeConfigurationItems(ctx, "example-config",
52-
[]string{"mykey", "mykey2", "mykey3"}, func(s string, items []*ConfigurationItem) {
53+
keys, func(s string, items map[string]*ConfigurationItem) {
5354
counter++
54-
for _, v := range items {
55-
assert.Equal(t, v.Value, v.Key+"_"+strconv.Itoa(counter-1))
55+
for _, k := range keys {
56+
assert.Equal(t, k+valueSuffix, items[k].Value)
5657
totalCounter++
5758
}
5859
})
@@ -72,11 +73,12 @@ func TestUnSubscribeConfigurationItems(t *testing.T) {
7273
subscribeID := ""
7374
subscribeIDChan := make(chan string)
7475
go func() {
76+
keys := []string{"mykey1", "mykey2", "mykey3"}
7577
err := testClient.SubscribeConfigurationItems(ctx, "example-config",
76-
[]string{"mykey", "mykey2", "mykey3"}, func(id string, items []*ConfigurationItem) {
78+
keys, func(id string, items map[string]*ConfigurationItem) {
7779
counter.Inc()
78-
for _, v := range items {
79-
assert.Equal(t, v.Value, v.Key+"_"+strconv.Itoa(int(counter.Load()-1)))
80+
for _, k := range keys {
81+
assert.Equal(t, k+valueSuffix, items[k].Value)
8082
totalCounter.Inc()
8183
}
8284
select {

client/invoke.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import (
2121
anypb "github.com/golang/protobuf/ptypes/any"
2222
"github.com/pkg/errors"
2323

24-
v1 "github.com/dapr/dapr/pkg/proto/common/v1"
25-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
24+
v1 "github.com/dapr/go-sdk/dapr/proto/common/v1"
25+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
2626
)
2727

2828
// DataContent the service invocation content.

client/invoke_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919

2020
"github.com/stretchr/testify/assert"
2121

22-
v1 "github.com/dapr/dapr/pkg/proto/common/v1"
22+
v1 "github.com/dapr/go-sdk/dapr/proto/common/v1"
2323
)
2424

2525
type _testStructwithText struct {

client/lock.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818

1919
"github.com/pkg/errors"
2020

21-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
21+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
2222
)
2323

2424
// LockRequest is the lock request object.

client/lock_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919

2020
"github.com/stretchr/testify/assert"
2121

22-
pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
22+
pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1"
2323
)
2424

2525
const (

0 commit comments

Comments
 (0)