Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(kuma-cp) mesh insight #1143

Merged
merged 20 commits into from
Nov 17, 2020
Merged

feat(kuma-cp) mesh insight #1143

merged 20 commits into from
Nov 17, 2020

Conversation

lobkovilya
Copy link
Contributor

Summary

Current PR adds MeshInsight entity that allows tracking number of mesh scoped resources.

API

  • GET: /mesh-insights
{
 "total": 2,
 "items": [
  {
   "type": "MeshInsight",
   "name": "default",
   "creationTime": "2020-11-11T07:07:41Z",
   "modificationTime": "2020-11-11T07:07:41Z",
   "lastSync": "2020-11-11T07:16:52.651679130Z",
   "dataplanes": {
    "total": 4,
    "online": 4
   },
   "policies": {
    "Config": {
     "total": 4
    },
    "TrafficPermission": {
     "total": 2
    }
   }
  },
  {
   "type": "MeshInsight",
   "name": "mymesh1",
   "creationTime": "2020-11-11T07:13:04Z",
   "modificationTime": "2020-11-11T07:13:04Z",
   "lastSync": "2020-11-11T07:16:52.662834520Z",
   "dataplanes": {},
   "policies": {
    "Config": {
     "total": 4
    },
    "Secret": {
     "total": 2
    },
    "TrafficPermission": {
     "total": 1
    }
   }
  }
 ],
 "next": null
}
  • GET /mesh-insights/default
{
 "type": "MeshInsight",
 "name": "default",
 "creationTime": "2020-11-11T07:07:41Z",
 "modificationTime": "2020-11-11T07:07:41Z",
 "lastSync": "2020-11-11T07:18:27.657468810Z",
 "dataplanes": {
  "total": 4,
  "online": 4
 },
 "policies": {
  "Config": {
   "total": 4
  },
  "TrafficPermission": {
   "total": 2
  }
 }
}

New command for kumactl:

$ kumactl inspect meshes
MESH      DATAPLANES   TRAFFIC PERMISSIONS   TRAFFIC ROUTES   CIRCUIT BREAKERS   HEALTH CHECKS   FAULT INJECTIONS   EXTERNAL SERVICES   TRAFFIC TRACES   TRAFFIC LOGS   PROXY TEMPLATES
default   4/4          2                     0                0                  0               0                  0                   0                0              0
mymesh1   0/0          1                     0                0                  0               0                  0                   0                0              0

Full changelog

  • New event-based approach. We don't recalculate MeshInsight often. We do that when an event happens, but not more often than minResyncTimeout(using rateLimiter) and every maxResyncTimeout to keep it synced in case of failures.

Issues resolved

Fix #XXX

Documentation

Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>

# Conflicts:
#	pkg/api-server/server.go
#	pkg/plugins/resources/postgres/migrations/migrations_vfsdata.go
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
@lobkovilya lobkovilya requested a review from a team as a code owner November 11, 2020 07:49
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
@subnetmarco
Copy link
Contributor

In the API this is /mesh-insights, but the other insights I believe are /dataplane+insights. Shouldn't we have some consistency here?

Copy link
Contributor

@jakubdyszkiewicz jakubdyszkiewicz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice, I like the event-based approach, I think it has a lot of potential in the future.

api/mesh/v1alpha1/mesh_insight.proto Show resolved Hide resolved
app/kumactl/cmd/inspect/inspect_meshes.go Outdated Show resolved Hide resolved
pkg/config/app/kuma-cp/config.go Show resolved Hide resolved
pkg/config/app/kuma-cp/kuma-cp.defaults.yaml Outdated Show resolved Hide resolved
pkg/plugins/resources/postgres/events/listener.go Outdated Show resolved Hide resolved
app/kuma-cp/cmd/run.go Outdated Show resolved Hide resolved
pkg/insights/resyncer.go Show resolved Hide resolved
pkg/events/interfaces.go Show resolved Hide resolved
pkg/events/interfaces.go Show resolved Hide resolved
pkg/events/eventbus.go Show resolved Hide resolved
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>

# Conflicts:
#	app/kuma-cp/cmd/run.go
#	app/kumactl/cmd/install/testdata/install-control-plane.cni-enabled.golden.yaml
#	app/kumactl/cmd/install/testdata/install-control-plane.defaults.golden.yaml
#	app/kumactl/cmd/install/testdata/install-control-plane.global.golden.yaml
#	app/kumactl/cmd/install/testdata/install-control-plane.overrides.golden.yaml
#	app/kumactl/cmd/install/testdata/install-control-plane.remote.golden.yaml
#	app/kumactl/cmd/install/testdata/install-control-plane.with-ingress.golden.yaml
#	app/kumactl/pkg/install/k8s/control-plane/helmtemplates_vfsdata.go
#	deployments/charts/kuma/templates/cp-rbac.yaml
#	pkg/core/runtime/runtime.go
…nsightType

Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>

# Conflicts:
#	app/kumactl/pkg/install/k8s/control-plane/helmtemplates_vfsdata.go
#	pkg/core/bootstrap/bootstrap.go
#	pkg/core/runtime/builder.go
#	pkg/test/runtime/runtime.go
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
@lobkovilya lobkovilya merged commit 5d30bf9 into master Nov 17, 2020
@lobkovilya lobkovilya deleted the feat/kuma-insights branch November 17, 2020 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants