Announcing dashboards

January 30, 2024

Announcing dashboards

Ready to start?

Announcing Dashboards

Why we created dashboards

We’re excited to introduce dashboards, a tool designed to efficiently visualize and access data. 

The key feature of dashboards is their ability to be customized to show exactly what specific portal users need. Whether it’s for tracking critical metrics, monitoring application health, keeping an eye on important tasks, or any combination of the three.

Port's data-first approach is what makes our dashboards so powerful. The software catalog, acting as a central hub, brings together data from services, infrastructure, and cloud assets. Once all this data is in the portal, platform engineers and users have the flexibility to arrange it as needed. This is possible because we’ve separated the data layer from the presentation layer, allowing you to directly query and interact with the data. As a result, it is possible to create any type of visualization needed. 

Setting up dashboards is straightforward, thanks to Port's no-code approach. You can drag and drop the data and arrange it in a way that makes the most sense for your teams. 

Our recommendation, following a project management approach, is to first define the specific needs of each team. Identify the key metrics, processes, or services that are critical for their day-to-day needs. Once these needs are clearly defined, create at least one dedicated dashboard per team. This approach ensures that the dashboards are not only customized to meet the team's requirements but also become an integral part of their daily operations. Soon, you'll see them being displayed on open space screens or becoming a go-to place every morning as your teams kick off their day.

What are Dashboards in the Internal Developer Portal?

Port's dashboards are built using a variety of widgets for customized data visualization. You can craft dashboards for different personas, teams or use cases, using: 

  • Catalog Tables: Filter them to display specific data sets required by the user.
  • Graphical Elements: Include pie charts and number charts for visual data representation.
  • Markdown: Display text and static information
  • Embedded Data: Use iframes to integrate data from other tools connected to Port, for example, monitoring and observability tools.
  • Line chart (coming soon): Show the evolution of a metric over time 
  • Bar chart (coming soon): Compare the value of two or more metrics

Extracting Insights From Port 

We can retrieve all data ingested into the Port software catalog from the various tools (plugins) connected to it. This data can then be aggregated and manipulated to create comprehensive overviews and detailed calculations. In addition, we can generate reports and visualizations on scorecards including the pass/fail status of specific rules. User action data can also be analyzed, providing insights into user engagement and interactions within the portal. 

Choose The Right Dashboard For The Task

Port's dashboards are flexible and practical. They're designed for a large range of uses, from high-level overviews for managers to detailed tracking for specific teams. You can mix and match data and visuals to get exactly what you're looking for. To give you a better idea, let's go over some examples: 

VP of Engineering Dashboards use Scorecards graphs to help them track production readiness metrics and deployment frequencies, and also get an overview of the distribution of the technology stack used throughout the teams (i.e, programming languages). Plus, you have the option to inline embed third-party monitor widgets, such as Datadog or New Relic graphs.

Announcing Dashboards

Team-Specific Dashboards are customized to show only metrics relevant to a specific team. A typical team-specific dashboard might show the numbers of incidents open for this team, a list of all the team’s services with quick links, and reports showcasing the team compliance with standards. 

Production Health Dashboards can include key metrics like applications with the most pod restarts over 24 hours, API error listings, services ranked by critical errors, and a pie chart categorizing service restart frequencies. This setup offers a data-focused view of production stability and issues.

Domain-Specific Dashboards are designed for specific use cases like security or finOps, offering targeted insights.
A security-focused dashboard could show a ranked list of misconfigurations and vulnerabilities, the most vulnerable services and the vulnerabilities which are affecting critical business domains. This can be used by managers and security engineers.

Initiative Tracking Dashboards are used to track the progress of a specific initiative such as upgrading a package across multiple teams and services. You can organize the dashboard to: show rule compliance details, track team progress, and display statistics on rule adherence. (A ready-made template is available through Port UI)

Announcing Dashboards

A Platform Engineering Dashboard is used to track portal usage by developers. It could include features such as an audit of self-service actions to analyze their use and success rate, a list of the most popular pages to understand user preferences, and an audit function to track activities and engagement. 

No-Code RBAC Built-in 

We understand the importance of a customized portal experience. You can configure permission access to any element in Port, dashboards included. Port's no-code RBAC capability ensures that every user sees exactly what they need, nothing more. It’s about providing a highly personalized and relevant portal experience for each user.

Conclusion 

Today, it's clear that one-size-fits-all solutions don't cut it, especially when it comes to monitoring and managing metrics. At Port, we understand that the needs and priorities of each organization, team and individual vary. That's why we believe that customizable dashboards are not just another feature, but a necessity for any efficient developer portal.

Our goal at Port is to empower portal users, and enable them to keep track of what matters most to them. Whether it's a team leader monitoring compliance with standards, a FinOps engineer looking to stay on top of costs, or a developer keeping track of their daily tasks, Port ensures that every user has the power to access and visualize information that reflects their very specific needs and goals.

Want to see it in action? Sign up for free or access our live demo today. 

{{cta_1}}

Check out Port's pre-populated demo and see what it's all about.

Check live demo

No email required

{{cta_2}}

Contact sales for a technical product walkthrough

Let’s start
{{cta_3}}

Open a free Port account. No credit card required

Let’s start
{{cta_4}}

Watch Port live coding videos - setting up an internal developer portal & platform

Let’s start
{{cta_5}}

Check out Port's pre-populated demo and see what it's all about.

(no email required)

Let’s start
{{cta_6}}

Contact sales for a technical product walkthrough

Let’s start
{{cta_7}}

Open a free Port account. No credit card required

Let’s start
{{cta_8}}

Watch Port live coding videos - setting up an internal developer portal & platform

Let’s start
{{cta-demo}}
{{reading-box-backstage-vs-port}}

Example JSON block

{
  "foo": "bar"
}

Order Domain

{
  "properties": {},
  "relations": {},
  "title": "Orders",
  "identifier": "Orders"
}

Cart System

{
  "properties": {},
  "relations": {
    "domain": "Orders"
  },
  "identifier": "Cart",
  "title": "Cart"
}

Products System

{
  "properties": {},
  "relations": {
    "domain": "Orders"
  },
  "identifier": "Products",
  "title": "Products"
}

Cart Resource

{
  "properties": {
    "type": "postgress"
  },
  "relations": {},
  "icon": "GPU",
  "title": "Cart SQL database",
  "identifier": "cart-sql-sb"
}

Cart API

{
 "identifier": "CartAPI",
 "title": "Cart API",
 "blueprint": "API",
 "properties": {
   "type": "Open API"
 },
 "relations": {
   "provider": "CartService"
 },
 "icon": "Link"
}

Core Kafka Library

{
  "properties": {
    "type": "library"
  },
  "relations": {
    "system": "Cart"
  },
  "title": "Core Kafka Library",
  "identifier": "CoreKafkaLibrary"
}

Core Payment Library

{
  "properties": {
    "type": "library"
  },
  "relations": {
    "system": "Cart"
  },
  "title": "Core Payment Library",
  "identifier": "CorePaymentLibrary"
}

Cart Service JSON

{
 "identifier": "CartService",
 "title": "Cart Service",
 "blueprint": "Component",
 "properties": {
   "type": "service"
 },
 "relations": {
   "system": "Cart",
   "resources": [
     "cart-sql-sb"
   ],
   "consumesApi": [],
   "components": [
     "CorePaymentLibrary",
     "CoreKafkaLibrary"
   ]
 },
 "icon": "Cloud"
}

Products Service JSON

{
  "identifier": "ProductsService",
  "title": "Products Service",
  "blueprint": "Component",
  "properties": {
    "type": "service"
  },
  "relations": {
    "system": "Products",
    "consumesApi": [
      "CartAPI"
    ],
    "components": []
  }
}

Component Blueprint

{
 "identifier": "Component",
 "title": "Component",
 "icon": "Cloud",
 "schema": {
   "properties": {
     "type": {
       "enum": [
         "service",
         "library"
       ],
       "icon": "Docs",
       "type": "string",
       "enumColors": {
         "service": "blue",
         "library": "green"
       }
     }
   },
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {
   "system": {
     "target": "System",
     "required": false,
     "many": false
   },
   "resources": {
     "target": "Resource",
     "required": false,
     "many": true
   },
   "consumesApi": {
     "target": "API",
     "required": false,
     "many": true
   },
   "components": {
     "target": "Component",
     "required": false,
     "many": true
   },
   "providesApi": {
     "target": "API",
     "required": false,
     "many": false
   }
 }
}

Resource Blueprint

{
 “identifier”: “Resource”,
 “title”: “Resource”,
 “icon”: “DevopsTool”,
 “schema”: {
   “properties”: {
     “type”: {
       “enum”: [
         “postgress”,
         “kafka-topic”,
         “rabbit-queue”,
         “s3-bucket”
       ],
       “icon”: “Docs”,
       “type”: “string”
     }
   },
   “required”: []
 },
 “mirrorProperties”: {},
 “formulaProperties”: {},
 “calculationProperties”: {},
 “relations”: {}
}

API Blueprint

{
 "identifier": "API",
 "title": "API",
 "icon": "Link",
 "schema": {
   "properties": {
     "type": {
       "type": "string",
       "enum": [
         "Open API",
         "grpc"
       ]
     }
   },
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {
   "provider": {
     "target": "Component",
     "required": true,
     "many": false
   }
 }
}

Domain Blueprint

{
 "identifier": "Domain",
 "title": "Domain",
 "icon": "Server",
 "schema": {
   "properties": {},
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {}
}

System Blueprint

{
 "identifier": "System",
 "title": "System",
 "icon": "DevopsTool",
 "schema": {
   "properties": {},
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {
   "domain": {
     "target": "Domain",
     "required": true,
     "many": false
   }
 }
}
{{tabel-1}}

Microservices SDLC

  • Scaffold a new microservice

  • Deploy (canary or blue-green)

  • Feature flagging

  • Revert

  • Lock deployments

  • Add Secret

  • Force merge pull request (skip tests on crises)

  • Add environment variable to service

  • Add IaC to the service

  • Upgrade package version

Development environments

  • Spin up a developer environment for 5 days

  • ETL mock data to environment

  • Invite developer to the environment

  • Extend TTL by 3 days

Cloud resources

  • Provision a cloud resource

  • Modify a cloud resource

  • Get permissions to access cloud resource

SRE actions

  • Update pod count

  • Update auto-scaling group

  • Execute incident response runbook automation

Data Engineering

  • Add / Remove / Update Column to table

  • Run Airflow DAG

  • Duplicate table

Backoffice

  • Change customer configuration

  • Update customer software version

  • Upgrade - Downgrade plan tier

  • Create - Delete customer

Machine learning actions

  • Train model

  • Pre-process dataset

  • Deploy

  • A/B testing traffic route

  • Revert

  • Spin up remote Jupyter notebook

{{tabel-2}}

Engineering tools

  • Observability

  • Tasks management

  • CI/CD

  • On-Call management

  • Troubleshooting tools

  • DevSecOps

  • Runbooks

Infrastructure

  • Cloud Resources

  • K8S

  • Containers & Serverless

  • IaC

  • Databases

  • Environments

  • Regions

Software and more

  • Microservices

  • Docker Images

  • Docs

  • APIs

  • 3rd parties

  • Runbooks

  • Cron jobs

Starting with Port is simple, fast and free.

Let’s start