Exploring Your Service Map

Finally, a map of your whole system that anyone can use to understand what the heck is going on!

Example service map

What's going on in this diagram?

This map itself has two types of nodes and a bunch of connections between them:

  • Some nodes represent services in your system. Often these are instrumented by your tracing technology. But sometimes they are only implied! You may not have instrumented your database, or your S3 buckets, but CodeSee can infer these nodes exist as part of your system.
  • Some nodes represent external APIs or SaaS products that your system interacts with. CodeSee detects that your system is using these APIs and visualizes them as an important part of your system. After all, when they go down, it often affects your system as well!
  • Each connection between two nodes represents that communication exists between them: requests are initiated from the base of the arrow, and received at the head of the arrow. For example, the arrow for an HTTP request always starts with the referrer and points to the service making the response. Similarly for any kind of db query, or other API request.

The active environment and time window

You can filter your map to a single environment (production, staging, etc), and a time window (past hour, past day, past week, etc). Your map will only display services, connections, endpoints, flows, and variants that were detected during that time window.

πŸ“˜

Choosing your time window

For a fast-changing application, a short time window can be very helpful to see the most up-to-date version of your map. But beware! If a particular call wasn't made during that window (maybe it only occurs once a week), it won't appear on your map.

To make sure you see every detail of your system, a longer time window can be very helpful. But beware! You may see parts of the system that are no longer active.

Dive into a service

Click on a service, and the right-panel will slide open with helpful details about the service.

The "Info" tab

The "Info" tab is a high-level overview of the selected service.

Users with write privileges can customize the service's name, description, repository, category, as well as add additional resources.

The tab displays a count of unique incoming and outgoing "calls" that have been detected within the active time window. You can see more detail about each in the similarly named tabs: "In" and "Out".

The "Flows" tab

To really understand how this service is incorporated into your application, you need to see which Flows through your application use this service.

Think of a Flow as a single end-to-end execution through your system. Click on any Flow to see a full flow diagram of execution.

Flows, Variants, entry points, and origins are a big topic, so we made a whole page all about them. Check it out!

The "In" tab

The "In" tab provides details about the incoming traffic to this service: the API that this service exposes and the ways other services are using it.

Incoming services

This section is a list of each service that makes calls to the selected service, and how many unique API endpoints (calls) it uses.

Endpoints

A list of each endpoint detected during the active time window. The number + cloud icon indicates how many different services used that endpoint during the time window.

Click on any endpoint to dive in:

  • See more details on the endpoint: for example a complete sql or graphql query
  • See which services use this endpoint, and some example requests from each service
  • Any associated Flow

The "Out" tab

The "Out" tab is just like the "In" tab, except it provides details about the outgoing traffic from this service: what other APIs is this service using?

Outgoing services

This section is a list of each other service that the selected service makes calls to, and how many unique API endpoints (calls) it uses.

Endpoints

A list of each API call detected during the active time window. Calls are grouped by destination service, so you can easily see every API call being made between the selected service and any one of the outgoing services.

Click on any endpoint to dive in:

  • See more details on the endpoint: for example a complete sql or graphql query
  • See some example requests from each service
  • Any associated Flow