From 88a5f20ca5160754d3bdd8918486e2b4aba87a08 Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Wed, 10 May 2023 18:43:20 +0200 Subject: [PATCH 1/9] . --- ProtoActor.sln | 15 +++++++++++++++ benchmarks/KubernetesDiagnostics/Program.cs | 12 +++--------- benchmarks/KubernetesDiagnostics/build.sh | 5 ++++- benchmarks/KubernetesDiagnostics/service.yaml | 18 +++++++++--------- service.yaml | 4 ---- src/Proto.Actor/Logging/Log.cs | 2 ++ tests/Proto.Cluster.Tests/ClusterFixture.cs | 1 + 7 files changed, 34 insertions(+), 23 deletions(-) diff --git a/ProtoActor.sln b/ProtoActor.sln index 49a9f0ad61..b0457a07da 100644 --- a/ProtoActor.sln +++ b/ProtoActor.sln @@ -272,6 +272,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Proto.Cluster.AzureContaine EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Proto.Cluster.SeedNode.Redis", "src\Proto.Cluster.SeedNode.Redis\Proto.Cluster.SeedNode.Redis.csproj", "{BDB67DAB-12F8-4D9F-BF7E-9F5D9E723816}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubernetesDiagnostics", "benchmarks\KubernetesDiagnostics\KubernetesDiagnostics.csproj", "{5FECD1A8-A873-4927-81C3-E5C5A37D80C5}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1374,6 +1376,18 @@ Global {BDB67DAB-12F8-4D9F-BF7E-9F5D9E723816}.Release|x64.Build.0 = Release|Any CPU {BDB67DAB-12F8-4D9F-BF7E-9F5D9E723816}.Release|x86.ActiveCfg = Release|Any CPU {BDB67DAB-12F8-4D9F-BF7E-9F5D9E723816}.Release|x86.Build.0 = Release|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Debug|x64.ActiveCfg = Debug|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Debug|x64.Build.0 = Debug|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Debug|x86.ActiveCfg = Debug|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Debug|x86.Build.0 = Debug|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Release|Any CPU.Build.0 = Release|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Release|x64.ActiveCfg = Release|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Release|x64.Build.0 = Release|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Release|x86.ActiveCfg = Release|Any CPU + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1500,6 +1514,7 @@ Global {E56413ED-8205-4AC1-A7CE-24A2C1711F54} = {9AA2BCF0-19AB-4DD9-8D91-7D188E463806} {4DF9BBFF-C480-4550-B2BA-6603DAE6BC6F} = {3D12F5E5-9774-4D7E-8A5B-B1F64544925B} {BDB67DAB-12F8-4D9F-BF7E-9F5D9E723816} = {3D12F5E5-9774-4D7E-8A5B-B1F64544925B} + {5FECD1A8-A873-4927-81C3-E5C5A37D80C5} = {0F3AB331-C042-4371-A2F0-0AFDFA13DC9F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {CD0D1E44-8118-4682-8793-6B20ABFA824C} diff --git a/benchmarks/KubernetesDiagnostics/Program.cs b/benchmarks/KubernetesDiagnostics/Program.cs index e56dddb081..e629feda7e 100644 --- a/benchmarks/KubernetesDiagnostics/Program.cs +++ b/benchmarks/KubernetesDiagnostics/Program.cs @@ -33,7 +33,7 @@ public static async Task Main() var log = Log.CreateLogger("main"); var identity = new PartitionIdentityLookup(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(2) - ); // new IdentityStorageLookup(GetRedisId("MyCluster")); + ); /* - name: "REDIS" @@ -57,10 +57,7 @@ public static async Task Main() var noOpsProps = Props.FromFunc(ctx => Task.CompletedTask); var echoKind = new ClusterKind("echo", noOpsProps); - var system = new ActorSystem(new ActorSystemConfig() - // .WithDeveloperReceiveLogging(TimeSpan.FromSeconds(1)) - // .WithDeveloperSupervisionLogging(true) - ) + var system = new ActorSystem(new ActorSystemConfig()) .WithRemote(GrpcNetRemoteConfig .BindTo(host, port) .WithAdvertisedHost(advertisedHost) @@ -72,8 +69,7 @@ public static async Task Main() .WithClusterKind(echoKind) ); - system.EventStream.Subscribe(e => { Console.WriteLine($"{DateTime.Now:O} Gossip update Member {e.MemberId} Key {e.Key}"); } - ); + system.EventStream.Subscribe(e => { Console.WriteLine($"{DateTime.Now:O} Gossip update Member {e.MemberId} Key {e.Key}"); }); system.EventStream.Subscribe(e => { var members = e.Members; @@ -105,8 +101,6 @@ await system while (!cts.IsCancellationRequested) { - // var res = await system.Cluster().MemberList.TopologyConsensus(CancellationTokens.FromSeconds(5)); - var m = system.Cluster().MemberList.GetAllMembers(); var hash = Member.TopologyHash(m); diff --git a/benchmarks/KubernetesDiagnostics/build.sh b/benchmarks/KubernetesDiagnostics/build.sh index 7f489c3b5e..d76994c01f 100755 --- a/benchmarks/KubernetesDiagnostics/build.sh +++ b/benchmarks/KubernetesDiagnostics/build.sh @@ -1,3 +1,6 @@ +docker login kubectl delete --filename service.yaml -dotnet publish --os linux -c Release --arch x64 -p:PublishProfile=DefaultContainer +dotnet publish --os linux -c Release --arch x64 -p:PublishProfile=DefaultContainer +docker tag kubernetesdiagnostics:1.0.0 rogeralsing/kubediag +docker push rogeralsing/kubediag kubectl apply --filename service.yaml \ No newline at end of file diff --git a/benchmarks/KubernetesDiagnostics/service.yaml b/benchmarks/KubernetesDiagnostics/service.yaml index 24680c5779..fa3d2d16a3 100644 --- a/benchmarks/KubernetesDiagnostics/service.yaml +++ b/benchmarks/KubernetesDiagnostics/service.yaml @@ -8,7 +8,7 @@ kind: Role metadata: name: proto-cluster labels: - app: kubdiag + app: kubediag rules: - apiGroups: - "" @@ -28,7 +28,7 @@ kind: RoleBinding metadata: name: proto-cluster labels: - app: kubdiag + app: kubediag roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -42,13 +42,13 @@ kind: Service metadata: name: testing labels: - app: kubdiag + app: kubediag spec: ports: - port: 8080 name: protoactor selector: - app: kubdiag + app: kubediag --- apiVersion: apps/v1 kind: Deployment @@ -58,19 +58,19 @@ spec: replicas: 3 selector: matchLabels: - app: kubdiag + app: kubediag template: metadata: labels: - app: kubdiag + app: kubediag version: v1 spec: serviceAccountName: proto-cluster containers: - - name: kubdiag + - name: kubediag # there is nothing sensitive in here, its just a diagnostics app - image: rogeralsing/kubdiagg:default2 - imagePullPolicy: Never + image: rogeralsing/kubediag:latest + imagePullPolicy: Always ports: - containerPort: 8080 env: diff --git a/service.yaml b/service.yaml index e834b600db..b417855343 100644 --- a/service.yaml +++ b/service.yaml @@ -37,8 +37,6 @@ spec: value: "8080" - name: PROTOHOST value: "0.0.0.0" - - name: "MONGO" - value: "mongodb://mongo" - name: "PROTOHOSTPUBLIC" valueFrom: fieldRef: @@ -70,8 +68,6 @@ spec: value: "8080" - name: PROTOHOST value: "0.0.0.0" - - name: "MONGO" - value: "mongodb://mongo" - name: "PROTOHOSTPUBLIC" valueFrom: fieldRef: diff --git a/src/Proto.Actor/Logging/Log.cs b/src/Proto.Actor/Logging/Log.cs index cabc928dbf..b974e137bf 100644 --- a/src/Proto.Actor/Logging/Log.cs +++ b/src/Proto.Actor/Logging/Log.cs @@ -4,6 +4,7 @@ // // ----------------------------------------------------------------------- +using System; using JetBrains.Annotations; using Microsoft.Extensions.Logging; using Proto.Logging; @@ -44,5 +45,6 @@ public static class Log /// /// /// + [Obsolete("Inject ILogger instead", false)] public static ILogger CreateLogger() => _loggerFactory.CreateLogger(); } \ No newline at end of file diff --git a/tests/Proto.Cluster.Tests/ClusterFixture.cs b/tests/Proto.Cluster.Tests/ClusterFixture.cs index fab5663f0c..76b35c7c62 100644 --- a/tests/Proto.Cluster.Tests/ClusterFixture.cs +++ b/tests/Proto.Cluster.Tests/ClusterFixture.cs @@ -68,6 +68,7 @@ static ClusterFixture() { TracingSettings.OpenTelemetryUrl = Environment.GetEnvironmentVariable("OPENTELEMETRY_URL"); TracingSettings.TraceViewUrl = Environment.GetEnvironmentVariable("TRACEVIEW_URL"); + TracingSettings.OpenTelemetryUrl = "http://Localhost:4317"; TracingSettings.EnableTracing = TracingSettings.OpenTelemetryUrl != null; //TODO: check if this helps low resource envs like github actions. From 2bb3ba304a668f7646f00b25a3a4d0f1efbe1ece Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Wed, 10 May 2023 19:49:08 +0200 Subject: [PATCH 2/9] i hate it.... --- .../KubernetesDiagnostics/.dockerignore | 25 ------ benchmarks/KubernetesDiagnostics/Dockerfile | 18 ---- .../KubernetesDiagnostics/Dockerfile-amd64 | 18 ---- .../KubernetesDiagnostics/build-amd64.sh | 4 - benchmarks/KubernetesDiagnostics/build.sh | 2 +- .../KubernetesDiagnostics/service-amd64.yaml | 86 ------------------- benchmarks/KubernetesDiagnostics/service.yaml | 20 +++-- 7 files changed, 13 insertions(+), 160 deletions(-) delete mode 100644 benchmarks/KubernetesDiagnostics/.dockerignore delete mode 100644 benchmarks/KubernetesDiagnostics/Dockerfile delete mode 100644 benchmarks/KubernetesDiagnostics/Dockerfile-amd64 delete mode 100755 benchmarks/KubernetesDiagnostics/build-amd64.sh delete mode 100644 benchmarks/KubernetesDiagnostics/service-amd64.yaml diff --git a/benchmarks/KubernetesDiagnostics/.dockerignore b/benchmarks/KubernetesDiagnostics/.dockerignore deleted file mode 100644 index cd967fc3a2..0000000000 --- a/benchmarks/KubernetesDiagnostics/.dockerignore +++ /dev/null @@ -1,25 +0,0 @@ -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/.idea -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md \ No newline at end of file diff --git a/benchmarks/KubernetesDiagnostics/Dockerfile b/benchmarks/KubernetesDiagnostics/Dockerfile deleted file mode 100644 index 7c0b92be47..0000000000 --- a/benchmarks/KubernetesDiagnostics/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base -WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build -WORKDIR /src -COPY ["KubernetesDiagnostics.csproj", "/src"] -RUN dotnet restore "/src/KubernetesDiagnostics.csproj" -COPY . . -WORKDIR /src -RUN dotnet build "/src/KubernetesDiagnostics.csproj" -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish "KubernetesDiagnostics.csproj" -c Release -o /app/publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "KubernetesDiagnostics.dll"] \ No newline at end of file diff --git a/benchmarks/KubernetesDiagnostics/Dockerfile-amd64 b/benchmarks/KubernetesDiagnostics/Dockerfile-amd64 deleted file mode 100644 index d8afa03515..0000000000 --- a/benchmarks/KubernetesDiagnostics/Dockerfile-amd64 +++ /dev/null @@ -1,18 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:5.0-focal-amd64 AS base -WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build -WORKDIR /src -COPY ["KubernetesDiagnostics.csproj", "/src"] -RUN dotnet restore "/src/KubernetesDiagnostics.csproj" -COPY . . -WORKDIR /src -RUN dotnet build "/src/KubernetesDiagnostics.csproj" -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish "KubernetesDiagnostics.csproj" -c Release -o /app/publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "KubernetesDiagnostics.dll"] diff --git a/benchmarks/KubernetesDiagnostics/build-amd64.sh b/benchmarks/KubernetesDiagnostics/build-amd64.sh deleted file mode 100755 index b926ad7580..0000000000 --- a/benchmarks/KubernetesDiagnostics/build-amd64.sh +++ /dev/null @@ -1,4 +0,0 @@ -kubectl delete --filename service.yaml -docker build . -t rogeralsing/kubdiagg:amd64 -f Dockerfile-amd64 -docker push docker.io/rogeralsing/kubdiagg:amd64 -kubectl apply --filename service-amd64.yaml --namespace rogerroger \ No newline at end of file diff --git a/benchmarks/KubernetesDiagnostics/build.sh b/benchmarks/KubernetesDiagnostics/build.sh index d76994c01f..3c01b466aa 100755 --- a/benchmarks/KubernetesDiagnostics/build.sh +++ b/benchmarks/KubernetesDiagnostics/build.sh @@ -1,6 +1,6 @@ docker login kubectl delete --filename service.yaml -dotnet publish --os linux -c Release --arch x64 -p:PublishProfile=DefaultContainer +dotnet publish --os linux -c Release --arch amd64 -p:PublishProfile=DefaultContainer docker tag kubernetesdiagnostics:1.0.0 rogeralsing/kubediag docker push rogeralsing/kubediag kubectl apply --filename service.yaml \ No newline at end of file diff --git a/benchmarks/KubernetesDiagnostics/service-amd64.yaml b/benchmarks/KubernetesDiagnostics/service-amd64.yaml deleted file mode 100644 index b1b6ba2504..0000000000 --- a/benchmarks/KubernetesDiagnostics/service-amd64.yaml +++ /dev/null @@ -1,86 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: proto-cluster ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: proto-cluster - labels: - app: kubdiag -rules: - - apiGroups: - - "" - resources: - - endpoints - - pods - - services - - services/status - verbs: - - get - - list - - watch - - patch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: proto-cluster - labels: - app: kubdiag -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: proto-cluster -subjects: - - kind: ServiceAccount - name: proto-cluster ---- -apiVersion: v1 -kind: Service -metadata: - name: testing - labels: - app: kubdiag -spec: - ports: - - port: 8080 - name: protoactor - selector: - app: kubdiag ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: diagapp -spec: - replicas: 3 - selector: - matchLabels: - app: kubdiag - template: - metadata: - labels: - app: kubdiag - version: v1 - spec: - serviceAccountName: proto-cluster - containers: - - name: kubdiag - # there is nothing sensitive in here, its just a diagnostics app - image: rogeralsing/kubdiagg:amd64 - imagePullPolicy: Always - ports: - - containerPort: 8080 - env: - - name: "REDIS" - value: "redis" - - name: PROTOPORT - value: "8080" - - name: PROTOHOST - value: "0.0.0.0" - - name: "PROTOHOSTPUBLIC" - valueFrom: - fieldRef: - fieldPath: status.podIP diff --git a/benchmarks/KubernetesDiagnostics/service.yaml b/benchmarks/KubernetesDiagnostics/service.yaml index fa3d2d16a3..b6d66f2b87 100644 --- a/benchmarks/KubernetesDiagnostics/service.yaml +++ b/benchmarks/KubernetesDiagnostics/service.yaml @@ -1,22 +1,24 @@ apiVersion: v1 +kind: Namespace +metadata: + name: my-namespace +--- +apiVersion: v1 kind: ServiceAccount metadata: name: proto-cluster + namespace: my-namespace --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: proto-cluster - labels: - app: kubediag + namespace: my-namespace rules: - apiGroups: - "" resources: - - endpoints - pods - - services - - services/status verbs: - get - list @@ -29,6 +31,7 @@ metadata: name: proto-cluster labels: app: kubediag + namespace: my-namespace roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -40,9 +43,10 @@ subjects: apiVersion: v1 kind: Service metadata: - name: testing + name: kubediag labels: app: kubediag + namespace: my-namespace spec: ports: - port: 8080 @@ -53,7 +57,8 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: diagapp + name: kubediag + namespace: my-namespace spec: replicas: 3 selector: @@ -68,7 +73,6 @@ spec: serviceAccountName: proto-cluster containers: - name: kubediag - # there is nothing sensitive in here, its just a diagnostics app image: rogeralsing/kubediag:latest imagePullPolicy: Always ports: From 44df1697e86e80522eea6df8a723d44151d85a3c Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Wed, 10 May 2023 20:13:52 +0200 Subject: [PATCH 3/9] works --- .../KubernetesDiagnostics.csproj | 2 +- benchmarks/KubernetesDiagnostics/Program.cs | 13 +++---------- benchmarks/KubernetesDiagnostics/build.sh | 2 +- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/benchmarks/KubernetesDiagnostics/KubernetesDiagnostics.csproj b/benchmarks/KubernetesDiagnostics/KubernetesDiagnostics.csproj index 3eb2c4c48b..ef49c265e6 100644 --- a/benchmarks/KubernetesDiagnostics/KubernetesDiagnostics.csproj +++ b/benchmarks/KubernetesDiagnostics/KubernetesDiagnostics.csproj @@ -8,7 +8,7 @@ - + diff --git a/benchmarks/KubernetesDiagnostics/Program.cs b/benchmarks/KubernetesDiagnostics/Program.cs index e629feda7e..3d05456067 100644 --- a/benchmarks/KubernetesDiagnostics/Program.cs +++ b/benchmarks/KubernetesDiagnostics/Program.cs @@ -69,20 +69,13 @@ public static async Task Main() .WithClusterKind(echoKind) ); - system.EventStream.Subscribe(e => { Console.WriteLine($"{DateTime.Now:O} Gossip update Member {e.MemberId} Key {e.Key}"); }); + // system.EventStream.Subscribe(e => { Console.WriteLine($"{DateTime.Now:O} Gossip update Member {e.MemberId} Key {e.Key}"); }); system.EventStream.Subscribe(e => { - var members = e.Members; - var x = members.Select(m => m.Id).OrderBy(i => i).ToArray(); - var key = string.Join("", x); - var hash = MurmurHash2.Hash(key); - Console.WriteLine($"{DateTime.Now:O} My members {hash}"); + var hash = e.TopologyHash; - // foreach (var member in members.OrderBy(m => m.Id)) - // { - // Console.WriteLine(member.Id + "\t" + member.Address + "\t" + member.Kinds); - // } + Console.WriteLine($"{DateTime.Now:O} My members {hash}"); } ); diff --git a/benchmarks/KubernetesDiagnostics/build.sh b/benchmarks/KubernetesDiagnostics/build.sh index 3c01b466aa..b2a94dfbb1 100755 --- a/benchmarks/KubernetesDiagnostics/build.sh +++ b/benchmarks/KubernetesDiagnostics/build.sh @@ -1,6 +1,6 @@ docker login kubectl delete --filename service.yaml -dotnet publish --os linux -c Release --arch amd64 -p:PublishProfile=DefaultContainer +dotnet publish --os linux -c Release --arch arm64 -p:PublishProfile=DefaultContainer docker tag kubernetesdiagnostics:1.0.0 rogeralsing/kubediag docker push rogeralsing/kubediag kubectl apply --filename service.yaml \ No newline at end of file From 59d87f4263d99da6d824eee7aac6d316a16ea946 Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Wed, 10 May 2023 20:26:26 +0200 Subject: [PATCH 4/9] . --- .../KubernetesClusterMonitor.cs | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/src/Proto.Cluster.Kubernetes/KubernetesClusterMonitor.cs b/src/Proto.Cluster.Kubernetes/KubernetesClusterMonitor.cs index b43beb0fb3..8ca2bd9423 100644 --- a/src/Proto.Cluster.Kubernetes/KubernetesClusterMonitor.cs +++ b/src/Proto.Cluster.Kubernetes/KubernetesClusterMonitor.cs @@ -79,25 +79,30 @@ private Task StopWatchingCluster() return Task.CompletedTask; } - private async Task StartWatchingCluster(IContext context) + private Task StartWatchingCluster(IContext context) { - try + _ = SafeTask.Run(async () => { - await Poll(); - } - catch (Exception x) - { - Logger.LogError(x, "[Cluster][KubernetesProvider] Failed to poll the Kubernetes API"); - } + try + { + await Poll(); + } + catch (Exception x) + { + Logger.LogError(x, "[Cluster][KubernetesProvider] Failed to poll the Kubernetes API"); + } - if (!_config.DisableWatch) - { - await Watch(); - } + if (!_config.DisableWatch) + { + await Watch(); + } + + await Task.Delay(1000); - await Task.Delay(1000); + context.Send(context.Self, new StartWatchingCluster(_clusterName)); + }); - context.Send(context.Self, new StartWatchingCluster(_clusterName)); + return Task.CompletedTask; } private Task Watch() @@ -290,6 +295,12 @@ private void Watch(WatchEventType eventType, V1Pod eventPod) private void UpdateTopology() { + if (_clusterPods?.Values is null) + { + Logger.LogInformation("[Cluster][KubernetesProvider] No pods found in the cluster"); + return; + } + var memberStatuses = _clusterPods.Values .Select(x => x.GetMemberStatus()) .Where(x => x.IsRunning && (x.IsReady || x.Member.Id == _cluster.System.Id)) From f204ac65c8d8ee8e682c1a286feab3c0e48eee72 Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Wed, 10 May 2023 20:38:01 +0200 Subject: [PATCH 5/9] . --- tests/Proto.Cluster.Tests/ClusterFixture.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Proto.Cluster.Tests/ClusterFixture.cs b/tests/Proto.Cluster.Tests/ClusterFixture.cs index 76b35c7c62..4290a9579e 100644 --- a/tests/Proto.Cluster.Tests/ClusterFixture.cs +++ b/tests/Proto.Cluster.Tests/ClusterFixture.cs @@ -68,7 +68,7 @@ static ClusterFixture() { TracingSettings.OpenTelemetryUrl = Environment.GetEnvironmentVariable("OPENTELEMETRY_URL"); TracingSettings.TraceViewUrl = Environment.GetEnvironmentVariable("TRACEVIEW_URL"); - TracingSettings.OpenTelemetryUrl = "http://Localhost:4317"; + // TracingSettings.OpenTelemetryUrl = "http://Localhost:4317"; TracingSettings.EnableTracing = TracingSettings.OpenTelemetryUrl != null; //TODO: check if this helps low resource envs like github actions. From 5e299dd4fabe34777336c2b18d8a47f867381dcc Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Thu, 11 May 2023 09:54:20 +0200 Subject: [PATCH 6/9] rename message placeholder --- benchmarks/KubernetesDiagnostics/Program.cs | 6 ++++++ src/Proto.Actor/Context/ActorLoggingContext.cs | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/benchmarks/KubernetesDiagnostics/Program.cs b/benchmarks/KubernetesDiagnostics/Program.cs index 3d05456067..3cb163b141 100644 --- a/benchmarks/KubernetesDiagnostics/Program.cs +++ b/benchmarks/KubernetesDiagnostics/Program.cs @@ -86,6 +86,12 @@ public static async Task Main() await system .Cluster() .StartMemberAsync(); + + system.Shutdown.Register(() => + { + Console.WriteLine("Shutting down..."); + Environment.Exit(0); + }); var props = Props.FromFunc(ctx => Task.CompletedTask); system.Root.SpawnNamed(props, "dummy"); diff --git a/src/Proto.Actor/Context/ActorLoggingContext.cs b/src/Proto.Actor/Context/ActorLoggingContext.cs index b7bf6473b7..00cac80574 100644 --- a/src/Proto.Actor/Context/ActorLoggingContext.cs +++ b/src/Proto.Actor/Context/ActorLoggingContext.cs @@ -47,7 +47,7 @@ public override async Task Receive(MessageEnvelope envelope) if (logLevel != LogLevel.None && _logger.IsEnabled(logLevel)) { - _logger.Log(logLevel, "Actor {Self} {ActorType} received message {MessageType}:{Message} from {Sender}", + _logger.Log(logLevel, "Actor {Self} {ActorType} received message {MessageType}:{MessagePayload} from {Sender}", Self, ActorType, message.GetMessageTypeName(), message, SenderOrNone(envelope) @@ -61,7 +61,7 @@ public override async Task Receive(MessageEnvelope envelope) if (logLevel != LogLevel.None && _logger.IsEnabled(logLevel)) { _logger.Log(logLevel, - "Actor {Self} {ActorType} completed message {MessageType}:{Message} from {Sender}", Self, ActorType, + "Actor {Self} {ActorType} completed message {MessageType}:{MessagePayload} from {Sender}", Self, ActorType, message.GetMessageTypeName(), message, SenderOrNone(envelope) @@ -73,7 +73,7 @@ public override async Task Receive(MessageEnvelope envelope) if (_exceptionLogLevel != LogLevel.None && _logger.IsEnabled(_exceptionLogLevel)) { _logger.Log(_exceptionLogLevel, x, - "Actor {Self} {ActorType} failed during message {MessageType}:{Message} from {Sender}", Self, + "Actor {Self} {ActorType} failed during message {MessageType}:{MessagePayload} from {Sender}", Self, ActorType, message.GetMessageTypeName(), message, SenderOrNone(envelope) @@ -110,7 +110,7 @@ public override async Task RequestAsync(PID target, object message, Cancel { if (_logLevel != LogLevel.None && _logger.IsEnabled(_logLevel)) { - _logger.Log(_logLevel, "Actor {Self} {ActorType} Sending RequestAsync {MessageType}:{Message} to {Target}", + _logger.Log(_logLevel, "Actor {Self} {ActorType} Sending RequestAsync {MessageType}:{MessagePayload} to {Target}", Self, ActorType, message.GetMessageTypeName(), message, target ); @@ -123,7 +123,7 @@ public override async Task RequestAsync(PID target, object message, Cancel if (_logLevel != LogLevel.None && _logger.IsEnabled(_logLevel)) { _logger.Log(_logLevel, - "Actor {Self} {ActorType} Got response {Response} to {MessageType}:{Message} from {Target}", Self, + "Actor {Self} {ActorType} Got response {Response} to {MessageType}:{MessagePayload} from {Target}", Self, ActorType, response, message.GetMessageTypeName(), message, target ); @@ -136,7 +136,7 @@ public override async Task RequestAsync(PID target, object message, Cancel if (_exceptionLogLevel != LogLevel.None && _logger.IsEnabled(_exceptionLogLevel)) { _logger.Log(_exceptionLogLevel, x, - "Actor {Self} {ActorType} Got exception waiting for RequestAsync response of {MessageType}:{Message} from {Target}", + "Actor {Self} {ActorType} Got exception waiting for RequestAsync response of {MessageType}:{MessagePayload} from {Target}", Self, ActorType, message.GetMessageTypeName(), message, target @@ -195,7 +195,7 @@ public override void Respond(object message) if (logLevel != LogLevel.None && _logger.IsEnabled(logLevel)) { - _logger.Log(logLevel, "Actor {Self} {ActorType} responded with {MessageType}:{Message} to {Sender}", Self, + _logger.Log(logLevel, "Actor {Self} {ActorType} responded with {MessageType}:{MessagePayload} to {Sender}", Self, ActorType, message.GetMessageTypeName(), message, Sender ); @@ -218,7 +218,7 @@ public override void Request(PID target, object message, PID? sender) { if (_logLevel != LogLevel.None && _logger.IsEnabled(_logLevel)) { - _logger.Log(_logLevel, "Actor {Self} {ActorType} Sending Request {MessageType}:{Message} to {Target}", + _logger.Log(_logLevel, "Actor {Self} {ActorType} Sending Request {MessageType}:{MessagePayload} to {Target}", Self, ActorType, message.GetMessageTypeName(), message, target ); @@ -231,7 +231,7 @@ public override void Send(PID target, object message) { if (_logLevel != LogLevel.None && _logger.IsEnabled(_logLevel)) { - _logger.Log(_logLevel, "Actor {Self} {ActorType} Sending {MessageType}:{Message} to {Target}", Self, + _logger.Log(_logLevel, "Actor {Self} {ActorType} Sending {MessageType}:{MessagePayload} to {Target}", Self, ActorType, message.GetMessageTypeName(), message, target ); From a3f2cff7d1d00073f70ad47de1249deaa490787b Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Thu, 11 May 2023 09:59:07 +0200 Subject: [PATCH 7/9] Rename message placeholder --- src/Proto.Actor/Context/ActorContextLogMessages.cs | 14 +++++++------- .../Context/DeadlineContextDecorator.cs | 2 +- src/Proto.Actor/Context/RootLoggingContext.cs | 12 ++++++------ src/Proto.Actor/Diagnostics/DiagnosticsStore.cs | 2 +- src/Proto.Actor/EventStream/DeadLetter.cs | 2 +- src/Proto.Actor/EventStream/EventStream.cs | 2 +- src/Proto.Cluster/Member/MemberList.cs | 2 +- src/Proto.Remote/Endpoints/Endpoint.cs | 10 +++++----- src/Proto.Remote/Endpoints/RemoteMessageHandler.cs | 6 +++--- src/Proto.Remote/Endpoints/ServerConnector.cs | 2 +- src/Proto.Remote/GrpcNet/GrpcNetClientRemote.cs | 2 +- src/Proto.Remote/GrpcNet/GrpcNetRemote.cs | 2 +- src/Proto.Remote/GrpcNet/HostedGrpcNetRemote.cs | 2 +- .../ForcedSerializationSenderMiddleware.cs | 4 ++-- tests/Proto.Cluster.Tests/ClusterFixture.cs | 2 +- 15 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/Proto.Actor/Context/ActorContextLogMessages.cs b/src/Proto.Actor/Context/ActorContextLogMessages.cs index 9f41caa2e4..4392e1c0c8 100644 --- a/src/Proto.Actor/Context/ActorContextLogMessages.cs +++ b/src/Proto.Actor/Context/ActorContextLogMessages.cs @@ -8,10 +8,10 @@ namespace Proto.Context; internal static partial class ActorContextLogMessages { - [LoggerMessage(0, LogLevel.Debug, "{Self} Responding to {Sender} with message {Message}")] + [LoggerMessage(0, LogLevel.Debug, "{Self} Responding to {Sender} with message {MessagePayload}")] internal static partial void ActorResponds(this ILogger logger, PID self, PID sender, object? message); - [LoggerMessage(1, LogLevel.Warning, "{Self} Tried to respond but sender is null, with message {Message}")] + [LoggerMessage(1, LogLevel.Warning, "{Self} Tried to respond but sender is null, with message {MessagePayload}")] internal static partial void ActorRespondsButSenderIsNull(this ILogger logger, PID self, object? message); [LoggerMessage(2, LogLevel.Error, "{Self} Failed to spawn child actor {Name}")] @@ -20,19 +20,19 @@ internal static partial class ActorContextLogMessages [LoggerMessage(3, LogLevel.Warning, "Message is null")] internal static partial void MessageIsNull(this ILogger logger); - [LoggerMessage(4, LogLevel.Warning, "SystemMessage cannot be forwarded. {Message}")] + [LoggerMessage(4, LogLevel.Warning, "SystemMessage cannot be forwarded. {MessagePayload}")] internal static partial void SystemMessageCannotBeForwarded(this ILogger logger, object? message); - [LoggerMessage(5, LogLevel.Error, "[Supervision] Actor {Self} : {ActorType} failed with message:{Message}")] + [LoggerMessage(5, LogLevel.Error, "[Supervision] Actor {Self} : {ActorType} failed with message:{MessagePayload}")] internal static partial void EscalateFailure(this ILogger logger, Exception reason, PID self, string actorType, object? message); - [LoggerMessage(6, LogLevel.Error, "Error handling SystemMessage {Message}")] + [LoggerMessage(6, LogLevel.Error, "Error handling SystemMessage {MessagePayload}")] internal static partial void ErrorHandlingSystemMessage(this ILogger logger, Exception ex, object? message); - [LoggerMessage(7, LogLevel.Warning, "Unknown system message {Message}")] + [LoggerMessage(7, LogLevel.Warning, "Unknown system message {MessagePayload}")] internal static partial void UnknownSystemMessage(this ILogger logger, object? message); - [LoggerMessage(8, LogLevel.Warning, "{Self} Dropping Continuation (ReenterAfter) of {Message}")] + [LoggerMessage(8, LogLevel.Warning, "{Self} Dropping Continuation (ReenterAfter) of {MessagePayload}")] internal static partial void DroppingContinuation(this ILogger logger, PID self, object? message); [LoggerMessage(9, LogLevel.Error, "{Self} Error while handling Stopping message")] diff --git a/src/Proto.Actor/Context/DeadlineContextDecorator.cs b/src/Proto.Actor/Context/DeadlineContextDecorator.cs index ae333e7e81..526247b657 100644 --- a/src/Proto.Actor/Context/DeadlineContextDecorator.cs +++ b/src/Proto.Actor/Context/DeadlineContextDecorator.cs @@ -61,7 +61,7 @@ public override async Task Receive(MessageEnvelope envelope) if (!ok) { - _logger.LogWarning("Actor {Self} deadline {Deadline}, exceeded on message {Message}", _context.Self, + _logger.LogWarning("Actor {Self} deadline {Deadline}, exceeded on message {MessagePayload}", _context.Self, _deadline, envelope.Message); // keep waiting, we cannot just ignore and continue as an async task might still be running and updating state of the actor diff --git a/src/Proto.Actor/Context/RootLoggingContext.cs b/src/Proto.Actor/Context/RootLoggingContext.cs index a10da58808..3a6995b91e 100644 --- a/src/Proto.Actor/Context/RootLoggingContext.cs +++ b/src/Proto.Actor/Context/RootLoggingContext.cs @@ -33,7 +33,7 @@ public override void Send(PID target, object message) if (logLevel != LogLevel.None && _logger.IsEnabled(logLevel)) { - _logger.Log(logLevel, "RootContext Sending {MessageType}:{Message} to {Target}", message.GetMessageTypeName(), message, + _logger.Log(logLevel, "RootContext Sending {MessageType}:{MessagePayload} to {Target}", message.GetMessageTypeName(), message, target); } @@ -59,7 +59,7 @@ public override void Request(PID target, object message, PID? sender) if (logLevel != LogLevel.None && _logger.IsEnabled(logLevel)) { - _logger.Log(logLevel, "Sending Request {MessageType}:{Message} to {Target}", message.GetMessageTypeName(), + _logger.Log(logLevel, "Sending Request {MessageType}:{MessagePayload} to {Target}", message.GetMessageTypeName(), message, target); } @@ -137,7 +137,7 @@ public override void Request(PID target, object message) if (logLevel != LogLevel.None && _logger.IsEnabled(logLevel)) { - _logger.Log(logLevel, "RootContext Sending Request {MessageType}:{Message} to {Target}", message.GetMessageTypeName(), + _logger.Log(logLevel, "RootContext Sending Request {MessageType}:{MessagePayload} to {Target}", message.GetMessageTypeName(), message, target); } @@ -148,7 +148,7 @@ public override async Task RequestAsync(PID target, object message, Cancel { if (_logLevel != LogLevel.None && _logger.IsEnabled(_logLevel)) { - _logger.Log(_logLevel, "RootContext Sending RequestAsync {MessageType}:{Message} to {Target}", + _logger.Log(_logLevel, "RootContext Sending RequestAsync {MessageType}:{MessagePayload} to {Target}", message.GetMessageTypeName(), message, target ); } @@ -160,7 +160,7 @@ public override async Task RequestAsync(PID target, object message, Cancel if (_logLevel != LogLevel.None && _logger.IsEnabled(_logLevel)) { _logger.Log(_logLevel, - "RootContext Got response {Response} to {MessageType}:{Message} from {Target}", + "RootContext Got response {Response} to {MessageType}:{MessagePayload} from {Target}", response, message.GetMessageTypeName(), message, target ); } @@ -172,7 +172,7 @@ public override async Task RequestAsync(PID target, object message, Cancel if (_exceptionLogLevel != LogLevel.None && _logger.IsEnabled(_exceptionLogLevel)) { _logger.Log(_exceptionLogLevel, x, - "RootContext Got exception waiting for RequestAsync response of {MessageType}:{Message} from {Target}", + "RootContext Got exception waiting for RequestAsync response of {MessageType}:{MessagePayload} from {Target}", message.GetMessageTypeName(), message, target ); } diff --git a/src/Proto.Actor/Diagnostics/DiagnosticsStore.cs b/src/Proto.Actor/Diagnostics/DiagnosticsStore.cs index 3240f881f1..0c9e0e523d 100644 --- a/src/Proto.Actor/Diagnostics/DiagnosticsStore.cs +++ b/src/Proto.Actor/Diagnostics/DiagnosticsStore.cs @@ -51,7 +51,7 @@ public void RegisterEvent(string module, string message) var entry = new DiagnosticsEntry(module, message, null); if (_entries.TryAdd(entry)) { - _logger.Log(_logLevel, "[Diagnostics] {Module}: {Message}", module, message); + _logger.Log(_logLevel, "[Diagnostics] {Module}: {MessagePayload}", module, message); } } diff --git a/src/Proto.Actor/EventStream/DeadLetter.cs b/src/Proto.Actor/EventStream/DeadLetter.cs index 8072063449..c5462a09f0 100644 --- a/src/Proto.Actor/EventStream/DeadLetter.cs +++ b/src/Proto.Actor/EventStream/DeadLetter.cs @@ -55,7 +55,7 @@ public DeadLetterEvent(PID pid, object message, PID? sender, MessageHeader? head public MessageHeader Header { get; } public override string ToString() => - $"DeadLetterEvent: [ Pid: {Pid}, Message: {Message.GetMessageTypeName()}:{Message}, Sender: {Sender}, Headers: {Header} ]"; + $"DeadLetterEvent: [ Pid: {Pid}, Message: {Message.GetMessageTypeName()}:{MessagePayload}, Sender: {Sender}, Headers: {Header} ]"; } /// diff --git a/src/Proto.Actor/EventStream/EventStream.cs b/src/Proto.Actor/EventStream/EventStream.cs index d4397a926f..d4b8553445 100644 --- a/src/Proto.Actor/EventStream/EventStream.cs +++ b/src/Proto.Actor/EventStream/EventStream.cs @@ -50,7 +50,7 @@ internal EventStream(ActorSystem system) dl.Message is not IIgnoreDeadLetterLogging) { _logger.LogInformation( - "[DeadLetter] could not deliver '{MessageType}:{Message}' to '{Target}' from '{Sender}'", + "[DeadLetter] could not deliver '{MessageType}:{MessagePayload}' to '{Target}' from '{Sender}'", dl.Message.GetMessageTypeName(), dl.Message, dl.Pid, diff --git a/src/Proto.Cluster/Member/MemberList.cs b/src/Proto.Cluster/Member/MemberList.cs index 59383c0236..9ebbcd13a1 100644 --- a/src/Proto.Cluster/Member/MemberList.cs +++ b/src/Proto.Cluster/Member/MemberList.cs @@ -361,7 +361,7 @@ public void BroadcastEvent(object message, bool includeSelf = true) catch (Exception x) { x.CheckFailFast(); - Logger.LogError(x, "[MemberList] Failed to broadcast {Message} to {Pid}", message, pid); + Logger.LogError(x, "[MemberList] Failed to broadcast {MessagePayload} to {Pid}", message, pid); } } } diff --git a/src/Proto.Remote/Endpoints/Endpoint.cs b/src/Proto.Remote/Endpoints/Endpoint.cs index 3719b64f6e..06148d4e23 100644 --- a/src/Proto.Remote/Endpoints/Endpoint.cs +++ b/src/Proto.Remote/Endpoints/Endpoint.cs @@ -100,7 +100,7 @@ public void SendMessage(PID target, object msg) if (_logger.IsEnabled(LogLevel.Trace)) { - _logger.LogTrace("[{SystemAddress}] Sending message {MessageType} {Message} to {Target} from {Sender}", + _logger.LogTrace("[{SystemAddress}] Sending message {MessageType} {MessagePayload} to {Target} from {Sender}", System.Address, message.GetMessageTypeName(), message, target, sender ); @@ -115,7 +115,7 @@ public void SendMessage(PID target, object msg) if (CancellationToken.IsCancellationRequested || !_remoteDelivers.Writer.TryWrite(env)) { - _logger.LogWarning("[{SystemAddress}] Dropping message {MessageType} {Message} to {Target} from {Sender}", + _logger.LogWarning("[{SystemAddress}] Dropping message {MessageType} {MessagePayload} to {Target} from {Sender}", System.Address, message.GetMessageTypeName(), message, target, sender ); @@ -249,7 +249,7 @@ private int DropMessagesInBatch(RemoteMessage remoteMessage) message = RemoteConfig.Serialization.Deserialize(typeName, envelope.MessageData, envelope.SerializerId); - // _logger.LogDebug("Received (Type) {Message}", message.GetType(), message); + // _logger.LogDebug("Received (Type) {MessagePayload}", message.GetType(), message); //translate from on-the-wire representation to in-process representation //this only applies to root level messages, and never on nested child messages @@ -468,14 +468,14 @@ private MessageBatch CreateBatch(IReadOnlyCollection m) catch (CodedOutputStream.OutOfSpaceException oom) { System.Diagnostics.RegisterEvent("Remote", $"Message is too large {message.GetMessageTypeName()}"); - _logger.LogError(oom, "Message is too large {Message}", message.GetMessageTypeName()); + _logger.LogError(oom, "Message is too large {MessagePayload}", message.GetMessageTypeName()); throw; } catch (Exception x) { System.Diagnostics.RegisterEvent("Remote", $"Missing serializer for {message.GetMessageTypeName()}"); - _logger.LogError(x, "Serialization failed for message {Message}", message.GetMessageTypeName()); + _logger.LogError(x, "Serialization failed for message {MessagePayload}", message.GetMessageTypeName()); throw; } diff --git a/src/Proto.Remote/Endpoints/RemoteMessageHandler.cs b/src/Proto.Remote/Endpoints/RemoteMessageHandler.cs index 13e3631d47..7bedcb800c 100644 --- a/src/Proto.Remote/Endpoints/RemoteMessageHandler.cs +++ b/src/Proto.Remote/Endpoints/RemoteMessageHandler.cs @@ -142,7 +142,7 @@ public void HandleRemoteMessage(RemoteMessage currentMessage, string remoteAddre if (_logger.IsEnabled(LogLevel.Trace)) { _logger.LogTrace( - "[{SystemAddress}] Received message {MessageType} {Message} for {Target}", + "[{SystemAddress}] Received message {MessageType} {MessagePayload} for {Target}", _system.Address, msg.GetType().Name, msg, target ); @@ -159,7 +159,7 @@ public void HandleRemoteMessage(RemoteMessage currentMessage, string remoteAddre if (_logger.IsEnabled(LogLevel.Trace)) { _logger.LogTrace( - "[{SystemAddress}] Received system message {MessageType} {Message} for {Target}", + "[{SystemAddress}] Received system message {MessageType} {MessagePayload} for {Target}", _system.Address, sys.GetType().Name, sys, target ); @@ -190,7 +190,7 @@ public void HandleRemoteMessage(RemoteMessage currentMessage, string remoteAddre if (_logger.IsEnabled(LogLevel.Trace)) { _logger.LogTrace( - "[{SystemAddress}] Received user message {MessageType} {Message} for {Target} from {Sender}", + "[{SystemAddress}] Received user message {MessageType} {MessagePayload} for {Target} from {Sender}", _system.Address, message.GetMessageTypeName(), message, target, sender ); } diff --git a/src/Proto.Remote/Endpoints/ServerConnector.cs b/src/Proto.Remote/Endpoints/ServerConnector.cs index f7c0b986e0..d85dabbc0e 100644 --- a/src/Proto.Remote/Endpoints/ServerConnector.cs +++ b/src/Proto.Remote/Endpoints/ServerConnector.cs @@ -318,7 +318,7 @@ private Task StartReader(AsyncDuplexStreamingCall if (_connectorType == Type.ServerSide) { _logger.LogWarning( - "[ServerConnector][{SystemAddress}] Received {Message} from {Addres}", + "[ServerConnector][{SystemAddress}] Received {MessagePayload} from {Addres}", _system.Address, currentMessage, _address); } else diff --git a/src/Proto.Remote/GrpcNet/GrpcNetClientRemote.cs b/src/Proto.Remote/GrpcNet/GrpcNetClientRemote.cs index 4c2f94bf4b..847c554c02 100644 --- a/src/Proto.Remote/GrpcNet/GrpcNetClientRemote.cs +++ b/src/Proto.Remote/GrpcNet/GrpcNetClientRemote.cs @@ -69,7 +69,7 @@ public Task ShutdownAsync(bool graceful = true) catch (Exception ex) { _logger.LogError( - ex, "Proto.Actor client {Id} stopped with error: {Message}", + ex, "Proto.Actor client {Id} stopped with error: {MessagePayload}", System.Id, ex.Message ); } diff --git a/src/Proto.Remote/GrpcNet/GrpcNetRemote.cs b/src/Proto.Remote/GrpcNet/GrpcNetRemote.cs index 727f6ad0ec..038441bcd5 100644 --- a/src/Proto.Remote/GrpcNet/GrpcNetRemote.cs +++ b/src/Proto.Remote/GrpcNet/GrpcNetRemote.cs @@ -174,7 +174,7 @@ public async Task ShutdownAsync(bool graceful = true) catch (Exception ex) { _logger.LogError( - ex, "Proto.Actor server stopped on {Address} with error: {Message}", + ex, "Proto.Actor server stopped on {Address} with error: {MessagePayload}", System.Address, ex.Message ); } diff --git a/src/Proto.Remote/GrpcNet/HostedGrpcNetRemote.cs b/src/Proto.Remote/GrpcNet/HostedGrpcNetRemote.cs index e1ebe5688a..fca7e8e3d3 100644 --- a/src/Proto.Remote/GrpcNet/HostedGrpcNetRemote.cs +++ b/src/Proto.Remote/GrpcNet/HostedGrpcNetRemote.cs @@ -87,7 +87,7 @@ public Task ShutdownAsync(bool graceful = true) catch (Exception ex) { _logger.LogError( - ex, "Proto.Actor server stopped on {Address} with error: {Message}", + ex, "Proto.Actor server stopped on {Address} with error: {MessagePayload}", System.Address, ex.Message ); diff --git a/src/Proto.Remote/Serialization/ForcedSerializationSenderMiddleware.cs b/src/Proto.Remote/Serialization/ForcedSerializationSenderMiddleware.cs index a9145938c2..df5cb86fbb 100644 --- a/src/Proto.Remote/Serialization/ForcedSerializationSenderMiddleware.cs +++ b/src/Proto.Remote/Serialization/ForcedSerializationSenderMiddleware.cs @@ -78,7 +78,7 @@ public static Func Create(Func? sho } catch (CodedOutputStream.OutOfSpaceException oom) { - Logger.LogError(oom, "Message is too large for serialization {Message}", message?.GetType().Name); + Logger.LogError(oom, "Message is too large for serialization {MessagePayload}", message?.GetType().Name); throw; } @@ -86,7 +86,7 @@ public static Func Create(Func? sho { ex.CheckFailFast(); - Logger.LogError(ex, "Forced serialization -> deserialization failed for message {Message}", + Logger.LogError(ex, "Forced serialization -> deserialization failed for message {MessagePayload}", message?.GetType().Name); throw; diff --git a/tests/Proto.Cluster.Tests/ClusterFixture.cs b/tests/Proto.Cluster.Tests/ClusterFixture.cs index 4290a9579e..f0fe6808c8 100644 --- a/tests/Proto.Cluster.Tests/ClusterFixture.cs +++ b/tests/Proto.Cluster.Tests/ClusterFixture.cs @@ -294,7 +294,7 @@ protected virtual async Task SpawnClusterMember(Func(e => { - logger?.LogDebug("EventStream {MessageType}:{Message}", e.GetType().Name, e); + logger?.LogDebug("EventStream {MessageType}:{MessagePayload}", e.GetType().Name, e); } ); From 9ae8229d2a84f2b2a04f5e3d050f1eb7786c70ec Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Thu, 11 May 2023 09:59:29 +0200 Subject: [PATCH 8/9] . --- src/Proto.Actor/EventStream/DeadLetter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Proto.Actor/EventStream/DeadLetter.cs b/src/Proto.Actor/EventStream/DeadLetter.cs index c5462a09f0..8072063449 100644 --- a/src/Proto.Actor/EventStream/DeadLetter.cs +++ b/src/Proto.Actor/EventStream/DeadLetter.cs @@ -55,7 +55,7 @@ public DeadLetterEvent(PID pid, object message, PID? sender, MessageHeader? head public MessageHeader Header { get; } public override string ToString() => - $"DeadLetterEvent: [ Pid: {Pid}, Message: {Message.GetMessageTypeName()}:{MessagePayload}, Sender: {Sender}, Headers: {Header} ]"; + $"DeadLetterEvent: [ Pid: {Pid}, Message: {Message.GetMessageTypeName()}:{Message}, Sender: {Sender}, Headers: {Header} ]"; } /// From 007c2a64afc05c5e9a6912bd905fd5dcd3dc84bc Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Thu, 11 May 2023 10:06:12 +0200 Subject: [PATCH 9/9] . --- src/Proto.Actor/Context/ActorContextLogMessages.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Proto.Actor/Context/ActorContextLogMessages.cs b/src/Proto.Actor/Context/ActorContextLogMessages.cs index 4392e1c0c8..9f41caa2e4 100644 --- a/src/Proto.Actor/Context/ActorContextLogMessages.cs +++ b/src/Proto.Actor/Context/ActorContextLogMessages.cs @@ -8,10 +8,10 @@ namespace Proto.Context; internal static partial class ActorContextLogMessages { - [LoggerMessage(0, LogLevel.Debug, "{Self} Responding to {Sender} with message {MessagePayload}")] + [LoggerMessage(0, LogLevel.Debug, "{Self} Responding to {Sender} with message {Message}")] internal static partial void ActorResponds(this ILogger logger, PID self, PID sender, object? message); - [LoggerMessage(1, LogLevel.Warning, "{Self} Tried to respond but sender is null, with message {MessagePayload}")] + [LoggerMessage(1, LogLevel.Warning, "{Self} Tried to respond but sender is null, with message {Message}")] internal static partial void ActorRespondsButSenderIsNull(this ILogger logger, PID self, object? message); [LoggerMessage(2, LogLevel.Error, "{Self} Failed to spawn child actor {Name}")] @@ -20,19 +20,19 @@ internal static partial class ActorContextLogMessages [LoggerMessage(3, LogLevel.Warning, "Message is null")] internal static partial void MessageIsNull(this ILogger logger); - [LoggerMessage(4, LogLevel.Warning, "SystemMessage cannot be forwarded. {MessagePayload}")] + [LoggerMessage(4, LogLevel.Warning, "SystemMessage cannot be forwarded. {Message}")] internal static partial void SystemMessageCannotBeForwarded(this ILogger logger, object? message); - [LoggerMessage(5, LogLevel.Error, "[Supervision] Actor {Self} : {ActorType} failed with message:{MessagePayload}")] + [LoggerMessage(5, LogLevel.Error, "[Supervision] Actor {Self} : {ActorType} failed with message:{Message}")] internal static partial void EscalateFailure(this ILogger logger, Exception reason, PID self, string actorType, object? message); - [LoggerMessage(6, LogLevel.Error, "Error handling SystemMessage {MessagePayload}")] + [LoggerMessage(6, LogLevel.Error, "Error handling SystemMessage {Message}")] internal static partial void ErrorHandlingSystemMessage(this ILogger logger, Exception ex, object? message); - [LoggerMessage(7, LogLevel.Warning, "Unknown system message {MessagePayload}")] + [LoggerMessage(7, LogLevel.Warning, "Unknown system message {Message}")] internal static partial void UnknownSystemMessage(this ILogger logger, object? message); - [LoggerMessage(8, LogLevel.Warning, "{Self} Dropping Continuation (ReenterAfter) of {MessagePayload}")] + [LoggerMessage(8, LogLevel.Warning, "{Self} Dropping Continuation (ReenterAfter) of {Message}")] internal static partial void DroppingContinuation(this ILogger logger, PID self, object? message); [LoggerMessage(9, LogLevel.Error, "{Self} Error while handling Stopping message")]