Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions config/_default/menus/main.en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2091,11 +2091,16 @@ menu:
parent: software_catalog
identifier: software_catalog_entity_model
weight: 102
- name: Entity Types
url: internal_developer_portal/software_catalog/entity_model/entity_types
- name: Native Entities
url: internal_developer_portal/software_catalog/entity_model/native_entities
parent: software_catalog_entity_model
identifier: software_catalog_entity_types
identifier: software_catalog_native_entities
weight: 1021
- name: Custom Entities
url: internal_developer_portal/software_catalog/entity_model/custom_entities
parent: software_catalog_entity_model
identifier: software_catalog_custom_entities
weight: 1022
- name: Troubleshooting
url: internal_developer_portal/software_catalog/troubleshooting
parent: software_catalog
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ algolia:

Software Catalog uses definition schemas to store and display relevant metadata about your entities. The schemas have built-in validation rules to ensure that only valid values are accepted. You can view warnings in the **Definition** tab on the Software Catalog side panel for any selected services.

{{< img src="/tracing/internal_developer_portal/entity-model-flow-chart.png" alt="A flow chart showing how components of Software Catalog connect with each other and with your cloud environment " style="width:100%;" >}}

## Supported versions

Datadog supports four versions of the definition schema:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: Custom Entities
disable_toc: false
further_reading:
- link: "/internal_developer_portal/software_catalog/set_up/create_entities"
tag: "Documentation"
text: "Create entities in Software Catalog"
- link: "/internal_developer_portal/software_catalog/entity_model/native_entity_types"
tag: "Documentation"
text: "Learn about native entity types"
---

## Overview

As of [schema definition v3.0][5]+, you can define custom entity types beyond the [native types][6] (such as service, datastore, or queue).

Custom entities allow you to represent any component or resource that is important to your organization but does not fit into the standard categories. For example, you might create custom entity types for libraries, pipelines, ML models, or infrastructure components.

See GitHub for [full schema definitions][7].

## Create a custom entity type

You can create custom entity types in Datadog or through the Software Catalog API. After creating the type, you can add entities of that type in Datadog or programmatically through the [Software Catalog APIs][2], [GitHub integration][4], or [Terraform module][3].

### In Datadog

1. Navigate to **APM** > **Software Catalog**, and click [**Manage**][8].
1. Click **Manage Custom Entity Types** to view existing entity types, native and custom.

{{< img src="/tracing/internal_developer_portal/manage-entity-types.png" alt="The Manage Entity Types pop-up window, showing existing native and custom types and a button to create a custom entity type" style="width:100%;" >}}

1. Click **Add Custom Entity Type** to add a type.

If you close the window and select **Create New Entry**, your custom type appears in the `kind` dropdown at the top of the pop-up window.

{{< img src="/tracing/internal_developer_portal/custom-type-in-dropdown.png" alt="The Create New Entry pop-up window, showing the kind dropdown which includes custom entity types" style="width:60%;" >}}

### Through the API

Alternatively, define your custom types through the [Software Catalog API][1].

### Example entity

In the follow example, a user defines an entity of custom type `library` with links, tags, and owning teams:

{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}}
apiVersion: v3
kind: library
metadata:
name: my-library
displayName: My Library
tags:
- tag:value
links:
- name: shopping-cart runbook
type: runbook
url: https://runbook/shopping-cart
- name: shopping-cart architecture
provider: gdoc
url: https://google.drive/shopping-cart-architecture
type: doc
- name: shopping-cart Wiki
provider: wiki
url: https://wiki/shopping-cart
type: doc
- name: shopping-cart source code
provider: github
url: http://github/shopping-cart
type: repo
contacts:
- name: Support Email
type: email
contact: team@shopping.com
- name: Support Slack
type: slack
contact: https://www.slack.com/archives/shopping-cart
owner: myteam
additionalOwners:
- name: opsTeam
type: operator
{{< /code-block >}}

## Further reading

{{< partial name="whats-next/whats-next.html" >}}

[1]: /api/latest/software-catalog/#create-or-update-kinds
[2]: /api/latest/software-catalog/#create-or-update-entities
[3]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/software_catalog
[4]: /integrations/github/
[5]: /internal_developer_portal/software_catalog/entity_model
[6]: /internal_developer_portal/software_catalog/entity_model/native_entity_types
[7]: https://github.com/DataDog/schema/tree/main/service-catalog/v3
[8]: https://app.datadoghq.com/software/settings/get-started
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: Entity Types
title: Native Entity Types
disable_toc: false
aliases:
- /internal_developer_portal/software_catalog/entity_model/entity_types
further_reading:
- link: "/internal_developer_portal/software_catalog/set_up/create_entities"
tag: "Documentation"
Expand All @@ -15,11 +17,11 @@ further_reading:

## Overview

In Software Catalog, an entity represents the smallest building block of modern microservice-based architecture. As of [schema definition v3.0][1]+, an entity can be an instrumented APM service, a datastore, a system, an API, a queue, or even a custom-defined entity.
In Software Catalog, an entity represents the smallest building block of modern microservice-based architecture. As of [schema definition v3.0][1]+, native entities include instrumented APM services, datastores, systems, APIs, queues, and frontends. You can also define [custom entity types][3] to represent components unique to your organization.

See GitHub for [full schema definitions][2].

## Entity types
## Native entity types

{{< tabs >}}

Expand Down Expand Up @@ -581,62 +583,11 @@ When this definition is created:

{{% /tab %}}

{{% tab "Custom entities" %}}

You can define custom entity types beyond service, system, datastore, queue, and API. Custom entities allow you to represent any component or resource that is important to your organization but does not fit into the standard categories.

First, define the kinds you want to use with [this API][1]. Only entities of the kinds you've explicitly set up are accepted. After you've defined the allowed kinds, entities of that kind can be defined in the UI or programmatically sent through the existing [Software Catalog APIs][2], [GitHub integration][4], and [Terraform module][3]. In the example below, a user is declaring a library with links, tags, and owning teams.

Example YAML:
{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}}
apiVersion: v3
kind: library
metadata:
name: my-library
displayName: My Library
tags:
- tag:value
links:
- name: shopping-cart runbook
type: runbook
url: https://runbook/shopping-cart
- name: shopping-cart architecture
provider: gdoc
url: https://google.drive/shopping-cart-architecture
type: doc
- name: shopping-cart Wiki
provider: wiki
url: https://wiki/shopping-cart
type: doc
- name: shopping-cart source code
provider: github
url: http://github/shopping-cart
type: repo
contacts:
- name: Support Email
type: email
contact: team@shopping.com
- name: Support Slack
type: slack
contact: https://www.slack.com/archives/shopping-cart
owner: myteam
additionalOwners:
- name: opsTeam
type: operator
{{< /code-block >}}

[1]: /api/latest/software-catalog/#create-or-update-kinds
[2]: /api/latest/software-catalog/#create-or-update-entities
[3]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/software_catalog
[4]: /integrations/github/

{{% /tab %}}

{{< /tabs >}}

[1]: /internal_developer_portal/software_catalog/entity_model
[2]: https://github.com/DataDog/schema/tree/main/service-catalog/v3
[3]: https://docs.datadoghq.com/api/latest/software-catalog/#create-or-update-entities
[3]: /internal_developer_portal/software_catalog/entity_model/custom_entities


## Further reading
Expand Down
Loading
Loading