Repository navigation
docs(knowledge-graph): document node roles #913
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -17,6 +17,9 @@ When you ask NuBi a dependency question, it hands the question to the **Dependen | |||||
| - Which load balancer routes to this service? | ||||||
| - What is in this VPC? | ||||||
| - Find the database named `orders`. | ||||||
| - Find all our caches, or everything acting as a message queue. | ||||||
|
|
||||||
| The last kind searches by [role](./nodes-and-relationships.md#node-roles) — what a resource acts as — so it covers both a managed resource whose type already means that role (an RDS instance) and a workload or VM someone has tagged, in one answer. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For professional tone and consistency with other pages, 'whose type already means that role' can be phrased as 'whose type already implies that role'.
Suggested change
|
||||||
|
|
||||||
| The agent only reports relationships the graph has actually recorded, and asks you to choose when a name matches more than one resource. | ||||||
|
|
||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,7 +1,7 @@ | ||||||
| --- | ||||||
| sidebar_position: 3 | ||||||
| sidebar_label: Nodes and Relationships | ||||||
| keywords: [knowledge graph, node types, relationship types, edges, node details] | ||||||
| keywords: [knowledge graph, node types, relationship types, edges, node details, node roles] | ||||||
| --- | ||||||
|
|
||||||
| # Nodes and Relationships | ||||||
|
|
@@ -14,7 +14,7 @@ Each node card shows: | |||||
|
|
||||||
| - **Icon** — the vendor or language logo, for example PostgreSQL, Redis, Kafka, Go or Java, when NudgeBee can tell; otherwise an icon for the type. | ||||||
| - **Name** — the resource's name. | ||||||
| - **Type line** — the node's type, for example *Workload* or *ComputeInstance*, sometimes with a role such as *Database*, *Cache* or *Queue*, and its location, such as a region. | ||||||
| - **Type line** — the node's type, for example *Workload* or *ComputeInstance*, sometimes with a role such as *Database*, *Cache* or *Session store* — what the resource acts as, not just what kind of resource it is. See [Node Roles](#node-roles). | ||||||
| - **Account line** — the account it belongs to, and its namespace for a Kubernetes resource. A resource you declared by hand outside any connected account reads *Not in a connected account*. | ||||||
|
|
||||||
| The border is **blue** for workloads and **green** for everything else. | ||||||
|
|
@@ -30,6 +30,7 @@ Click the ⓘ on a node to open **Node Details**. | |||||
| | Shows | What it is | | ||||||
| |:---|:---| | ||||||
| | **Unique Key** | The identifier NudgeBee uses for the resource across rebuilds, with a copy button. | | ||||||
| | **Role** | What the resource acts as, if anything, and whether it was detected or set by a user. **Set role** (or **Edit role**, once one is set) opens the picker. See [Node Roles](#node-roles). | | ||||||
| | **Last Seen** | When the graph last saw the resource. | | ||||||
| | **Path to this node** | When you have clicked through nodes, the route from the first one to this one, with each relationship. | | ||||||
| | **Labels** | The resource's properties: its labels, tags and collected details such as region, engine or replica count. | | ||||||
|
|
@@ -41,6 +42,27 @@ Kubernetes resources have more tabs: | |||||
| | Namespace, Node, Pod | Utilization Trends, Related Events | | ||||||
| | Workload, Job, CronJob | Utilization Trends, Related Events, Traces (last 24 hours), Logs (last 60 minutes), App Dashboard, Log Group | | ||||||
|
|
||||||
| ## Node Roles | ||||||
|
|
||||||
| A node's **type** says what kind of resource it is, such as *Workload* or *ComputeInstance*. Its **role** says what it acts as: a database, a cache, a message queue, and more. A managed resource whose type already means one — an RDS instance, an ElastiCache cluster — is that role without anyone saying so. A workload, a VM or a node you declared by hand is not, until a role is set on it: a Kubernetes job that rebuilds nightly reports looks like any other workload until someone marks it as what it does. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The phrase 'rebuilds nightly reports' can be slightly ambiguous (is 'nightly' modifying 'rebuilds' or 'reports'?). Rearranging it to 'rebuilds reports nightly' makes the adverbial relationship clearer and improves readability. Additionally, 'whose type already means one' can be phrased more professionally as 'whose type already implies one'.
Suggested change
|
||||||
|
|
||||||
|  | ||||||
| *A detected role on redis-master, with a button to override it* | ||||||
|
|
||||||
| A role can come from two places: | ||||||
|
|
||||||
| - **Detected.** NudgeBee recognizes some well-known datastores — Postgres, MySQL, MongoDB, Redis, Kafka, Elasticsearch and others — from a Kubernetes workload's image or Helm chart, and sets the role itself. | ||||||
| - **Set by a user.** Click **Set role** (or **Edit role**, once one is set) in a node's details, pick a role, and optionally name the **engine** it runs (`postgres`, `redis`, `kafka`, …), which sets the resource's icon. A role you set always wins over a detected one; removing it brings the detected role back. | ||||||
|
|
||||||
|  | ||||||
| *Overriding a detected role* | ||||||
|
|
||||||
| The built-in roles are **Database, Cache, Message queue, Search, Object storage, Load balancer, Proxy, API gateway, Scheduler, Monitoring** and **Auth**. If none fits, type your own, for example `session-store` or `etl-worker` — it is then suggested to the rest of the tenant the next time someone opens the picker. | ||||||
|
|
||||||
| Setting a role needs write access to the resource's account; for a node declared outside any connected account, tenant-wide access. When a resource has a matching cloud instance NudgeBee treats as the same machine, setting a role on either applies to both. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Adding the relative pronoun 'that' makes the clause 'NudgeBee treats as the same machine' much easier to read and grammatically smoother.
Suggested change
|
||||||
|
|
||||||
| A role is one of the facts NudgeBee's AI agents use to answer questions such as "find all our caches." See [How NudgeBee Uses the Graph](./how-nudgebee-uses-it.md#nubis-answers-about-dependencies) and the **Attribute filter** in [Explore the Graph](./exploring.md#filters). | ||||||
|
|
||||||
| ## Edge details | ||||||
|
|
||||||
| Click an edge to open **Edge Details**. It shows the relationship type, when the edge was last seen, and the properties recorded for it. What those are depends on where the edge came from: | ||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For professional tone and consistency with other pages, 'whose type already means that role' can be phrased as 'whose type already implies that role'.