Codebase

Navigate the Codebase using the tree view. Use the filters to highlight where various files are grouped to aid understanding.

Getting Started Commands

Project Structure

Below is a short description of the key directories of the project to aid you when understanding where key files are located.

archetypes/ - This directory contains templates for creating new pages and posts in Hugo, a static site generator. Specifically, it includes templates for blog posts and Medium-style articles. (Source: )
assets/ - This directory contains static files used by the website, such as images, JavaScript files, and CSS stylesheets.
assets/icons/ - This subdirectory contains icons used by the website.
assets/js/ - This subdirectory contains JavaScript files used by the website.
assets/scss/ - This subdirectory contains SCSS (Sass) files used for styling the website.
content-modules/ - This directory contains custom content modules, which are reusable components that can be used to build pages and posts.
content-modules/community/ - This subdirectory contains content modules related to the OpenTelemetry community.
content-modules/opentelemetry-go/ - This subdirectory contains content modules related to OpenTelemetry for the Go programming language.
content-modules/opentelemetry-proto/ - This subdirectory contains content modules related to OpenTelemetry protocols.
content-modules/opentelemetry-specification/ - This subdirectory contains content modules related to OpenTelemetry specifications.
content-modules/semantic-conventions/ - This subdirectory contains content modules related to semantic conventions used by OpenTelemetry.
content/ - This directory contains the main content of the website, including markdown files for blog posts, pages, and other types of content.
content/en/ - This subdirectory contains English-language content.
CONTRIBUTING.md - This file contains guidelines for contributing to the OpenTelemetry project.
data/ - This directory contains data used by the website, such as configuration files and metadata.
data/ecosystem/ - This subdirectory contains data related to the OpenTelemetry ecosystem.
data/instrumentation.yaml - This file contains configuration data for OpenTelemetry instrumentation.
data/registry/ - This subdirectory contains data related to the OpenTelemetry registry.
examples/ - This directory contains examples of how to use OpenTelemetry in various programming languages and frameworks.
gulp-src/ - This directory contains source files for Gulp tasks, which are used for automating build processes.
gulp-src/_md-rules/ - This subdirectory contains custom rules for processing markdown files using Gulp.
gulp-src/_util.js - This file contains utility functions used by the Gulp tasks.
gulp-src/default.js - This file contains the default Gulp task configuration.
gulp-src/lint-md.js - This file contains a Gulp task for linting markdown files.
gulp-src/prune.js - This file contains a Gulp task for removing unused files.
gulp-src/README.txt - This file contains documentation for the Gulp tasks.
gulpfile.js - This file contains the Gulp configuration file.
hugo.yaml - This file contains configuration data for Hugo.
i18n/ - This directory contains internationalization files, including language files and configuration files.
i18n/en.toml - This file contains English-language internationalization data.
iconography/ - This directory contains icons used by the website.
iconography/32x32/ - This subdirectory contains 32x32 pixel icons.
iconography/512x512/ - This subdirectory contains 512x512 pixel icons.
layouts/ - This directory contains HTML templates used for rendering pages and posts.
layouts/_default/ - This subdirectory contains the default layout template.
layouts/blog/ - This subdirectory contains layout templates for blog posts.
layouts/ecosystem/ - This subdirectory contains layout templates for pages about the OpenTelemetry ecosystem.
layouts/index.redirects - This file contains redirect rules for the homepage.
layouts/partials/ - This subdirectory contains reusable HTML templates.
layouts/shortcodes/ - This subdirectory contains shortcodes, which are reusable HTML snippets.
LICENSE - This file contains the license for the OpenTelemetry project.
LICENSE-CODE - This file contains the license for the codebase.
Makefile - This file contains Makefile instructions for building the website.
netlify.toml - This file contains configuration data for Netlify, which is used for deploying the website.
package.json - This file contains configuration data for the Node.js package manager.
README.md - This file contains documentation for the OpenTelemetry project.
scripts/ - This directory contains scripts used by the website, including shell scripts and Perl scripts.
scripts/auto-update/ - This subdirectory contains scripts for automatically updating the website.
scripts/check-build-log.sh - This script checks the build log for errors.
scripts/check-registry-urls - This script checks the OpenTelemetry registry URLs.
scripts/content-modules/ - This subdirectory contains scripts for managing content modules.
scripts/cspell-ignore-scanner - This script scans for ignored words in the codebase using CSpell.
scripts/norm-tabpanes.pl - This Perl script normalizes tab panes in markdown files.
scripts/normalize-cspell-front-matter.pl - This Perl script normalizes CSpell front matter in markdown files.
scripts/registry-scanner/ - This script scans the OpenTelemetry registry for updates.
scripts/sync-submodules.pl - This Perl script syncs submodules.
static/ - This directory contains static files that are served directly by the web server.
static/css/ - This subdirectory contains CSS files.
static/favicons/ - This subdirectory contains favicons.
static/img/ - This subdirectory contains images.
static/refcache.json - This file contains a reference cache for the website.
templates/ - This directory contains templates used by Hugo for rendering pages and posts.
templates/registry-entry.yml - This file contains a template for rendering registry entries.
themes/ - This directory contains themes used by the website.
themes/docsy/ - This subdirectory contains the Docsy theme, which is used by the OpenTelemetry website.
tools/ - This directory contains tools used for building and managing the website.
tools/build.yaml - This file contains configuration data for building the website.
tools/content/ - This subdirectory contains tools for managing content.
tools/examples/ - This subdirectory contains examples of how to use the tools.
tools/pubspec.yaml - This file contains configuration data for the Dart package manager.
tools/README.md - This file contains documentation for the tools.

Entrypoints

Below are files we identified as entrypoints for to the codebase. This is where the application starts and a good place to start when learning.

api.yaml - This file is a Kubernetes configuration file for deploying the OpenTelemetry Collector using Helm. It defines the image, ports, resources, and other configurations required for running the collector.
config/ - This directory contains the configuration files for the OpenTelemetry Collector. It includes the default configuration file, as well as example configurations for various use cases.
Dockerfile - This file is used to build the Docker image for the OpenTelemetry Collector. It installs the necessary dependencies, copies the source code, and sets up the environment for running the collector.
go.mod - This file is the Go module file for managing the dependencies of the OpenTelemetry Collector project. It lists the required modules and their versions.
go.sum - This file is the Go checksum file that verifies the integrity of the downloaded dependencies for the OpenTelemetry Collector project.
internal/ - This directory contains the internal packages and modules used by the OpenTelemetry Collector. It includes the implementation of the collector core, processors, and exporters.
main.go - This is the main entrypoint of the OpenTelemetry Collector. It initializes the collector, sets up the configuration, and starts processing the incoming telemetry data.
Makefile - This file is used to define the build and test targets for the OpenTelemetry Collector project. It includes rules for building the Docker image, running tests, and creating documentation.
pkg/ - This directory contains the packages that are exposed for external use by the OpenTelemetry Collector. It includes the API, configuration, and other utility packages.
scripts/ - This directory contains the scripts used for building, testing, and deploying the OpenTelemetry Collector. It includes scripts for building the Docker image, creating the Helm chart, and running tests.
test.go - This file contains the unit tests for the OpenTelemetry Collector. It sets up the test environment, runs the tests, and reports the test results.