Org Chart in Kibana Graph

Hello,

Saw that this was talked about previously (How do you build a org chart?) but the topic was closed.

I am wanting to create an org chart with the Kibana graph tool, but with the denormalized data requirement of ElasticSearch/Kibana, I am a little confused as to what format to ingest the data.

The data I've been given is in this format:

Employee Name | Employee ID | Supervisor Name | Supervisor 2 | Supervisor 3

Being that Supervisor 3 is the top of the hierarchy, supervisor 2 is below, supervisor is below, and employee is the outermost node.

I know that Kibana doesn't support hierarchy structures, but it can just show the connections so I was hoping to achieve the type of graph as shown on the Kibana website example:

Let me know of any insight on how I should format the data! I've been ingesting the CSV files but the graph isn't reading the relationships well.

To achieve something like this chain of command you would need to use documents that look more like a traditional graph data format where each document represents a single "edge" record listing only 2 nodes so something like:

DELETE test
PUT test 
{
  "settings":{
	"number_of_shards": 1
  },
  "mappings": {
	"edge": {
	  "properties": {
		"employeeNameID": {
		  "type": "keyword"
		},
		"Supervisor1NameID": {
		  "type": "keyword"
		},
		"Supervisor2NameID": {
		  "type": "keyword"
		},
		"Supervisor3NameID": {
		  "type": "keyword"
		}
	  }
	}
  }
}
POST /test/edge/_bulk
{ "index" : {} }
{ "employeeNameID" : "[1]Mark", "Supervisor1NameID":"[2]Clinton" }
{ "index" : {} }
{ "employeeNameID" : "[3]Colin", "Supervisor1NameID":"[2]Clinton" }
{ "index" : {} }
{ "Supervisor1NameID":"[2]Clinton", "Supervisor2NameID":"[4]Shay"  }
{ "index" : {} }
{ "Supervisor1NameID":"[5]Kevin", "Supervisor2NameID":"[4]Shay"  }

Note I combined names and IDs into single tokens because names aren't always unique and IDs are not human-friendly.

You can then set the settings in the Graph UI to show all links:

Note however that the resulting graph visualization has no notion of hierarchy and which way is "up" and you would have to rely on icon choice or colour to help determine employees from supervisors:

1 Like

Hi Mark,

Thanks for your insight.
This is exactly the solution I was looking for!

Is there a way to possibly associate multiple data points within each node on the graph through the Graph UI?
For example, if I were to click on the bubble for Mark, would I be able to display other information i.e. e-mail, phone number, employee number, etc?

Thank you!

In the settings panel you can configure "drill down urls" - see 1 minute into this video: https://youtu.be/ZMmod1Hg92s

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.