From d286dd0250a7d310b3b2511d6ec671e3bf187530 Mon Sep 17 00:00:00 2001 From: utsavbhattarai007 Date: Wed, 18 Oct 2023 18:50:47 +0545 Subject: [PATCH] Added the quickstart of performance analytics stack and architecture diagram --- performance_optimization_stack/.gitignore | 163 ++++++++++ performance_optimization_stack/README.md | 294 ++++++++++++++++++ performance_optimization_stack/assets/a1.png | Bin 0 -> 149847 bytes .../dbt_project/.gitignore | 6 + .../dbt_project/README.md | 15 + .../dbt_project/analyses/.gitkeep | 0 .../dbt_project/dbt_project.yml | 39 +++ .../dbt_project/macros/.gitkeep | 0 .../models/marts/daily_cpu_usage.sql | 18 ++ .../models/marts/daily_error_logs.sql | 7 + .../models/marts/hourly_user_activity.sql | 8 + .../models/sources/datadog_source.yml | 33 ++ .../models/staging/stg_datadog_logs.sql | 0 .../models/staging/stg_datadog_metrics.sql | 6 + .../dbt_project/profiles.yml | 16 + .../dbt_project/seeds/.gitkeep | 0 .../dbt_project/snapshots/.gitkeep | 0 .../dbt_project/tests/.gitkeep | 0 .../infra/.gitignore | 34 ++ .../infra/airbyte/.terraform.lock.hcl | 25 ++ .../infra/airbyte/main.tf | 53 ++++ .../infra/airbyte/provider.tf | 20 ++ .../infra/airbyte/variables.tf | 27 ++ .../orchestration/orchestration/__init__.py | 0 .../orchestration/orchestration/assets.py | 20 ++ .../orchestration/orchestration/constants.py | 15 + .../orchestration/definitions.py | 16 + .../orchestration/orchestration/schedules.py | 15 + .../orchestration/pyproject.toml | 7 + .../orchestration/setup.py | 19 ++ performance_optimization_stack/setup.py | 14 + 31 files changed, 870 insertions(+) create mode 100644 performance_optimization_stack/.gitignore create mode 100644 performance_optimization_stack/README.md create mode 100644 performance_optimization_stack/assets/a1.png create mode 100644 performance_optimization_stack/dbt_project/.gitignore create mode 100644 performance_optimization_stack/dbt_project/README.md create mode 100644 performance_optimization_stack/dbt_project/analyses/.gitkeep create mode 100644 performance_optimization_stack/dbt_project/dbt_project.yml create mode 100644 performance_optimization_stack/dbt_project/macros/.gitkeep create mode 100644 performance_optimization_stack/dbt_project/models/marts/daily_cpu_usage.sql create mode 100644 performance_optimization_stack/dbt_project/models/marts/daily_error_logs.sql create mode 100644 performance_optimization_stack/dbt_project/models/marts/hourly_user_activity.sql create mode 100644 performance_optimization_stack/dbt_project/models/sources/datadog_source.yml create mode 100644 performance_optimization_stack/dbt_project/models/staging/stg_datadog_logs.sql create mode 100644 performance_optimization_stack/dbt_project/models/staging/stg_datadog_metrics.sql create mode 100644 performance_optimization_stack/dbt_project/profiles.yml create mode 100644 performance_optimization_stack/dbt_project/seeds/.gitkeep create mode 100644 performance_optimization_stack/dbt_project/snapshots/.gitkeep create mode 100644 performance_optimization_stack/dbt_project/tests/.gitkeep create mode 100644 performance_optimization_stack/infra/.gitignore create mode 100644 performance_optimization_stack/infra/airbyte/.terraform.lock.hcl create mode 100644 performance_optimization_stack/infra/airbyte/main.tf create mode 100644 performance_optimization_stack/infra/airbyte/provider.tf create mode 100644 performance_optimization_stack/infra/airbyte/variables.tf create mode 100644 performance_optimization_stack/orchestration/orchestration/__init__.py create mode 100644 performance_optimization_stack/orchestration/orchestration/assets.py create mode 100644 performance_optimization_stack/orchestration/orchestration/constants.py create mode 100644 performance_optimization_stack/orchestration/orchestration/definitions.py create mode 100644 performance_optimization_stack/orchestration/orchestration/schedules.py create mode 100644 performance_optimization_stack/orchestration/pyproject.toml create mode 100644 performance_optimization_stack/orchestration/setup.py create mode 100644 performance_optimization_stack/setup.py diff --git a/performance_optimization_stack/.gitignore b/performance_optimization_stack/.gitignore new file mode 100644 index 0000000..bc83b30 --- /dev/null +++ b/performance_optimization_stack/.gitignore @@ -0,0 +1,163 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +#Desktop Services Store +.DS_Store \ No newline at end of file diff --git a/performance_optimization_stack/README.md b/performance_optimization_stack/README.md new file mode 100644 index 0000000..5e5fb12 --- /dev/null +++ b/performance_optimization_stack/README.md @@ -0,0 +1,294 @@ +# Performance Analytics Stack with Airbyte, dbt, and Datadog + +Welcome to the "Performance Analytics Stack" repository! 🚀 This guide will walk you through setting up a seamless data integration between Datadog, Airbyte, and dbt. By the end, you'll be extracting performance metrics and logs from Datadog using Airbyte, transforming and analyzing the data with dbt to optimize system performance and resource utilization. + +Let's get you started! + +## Table of Contents + +- [Prerequisites](#prerequisites) +- [Architecture](#architecture) +- [Setting an environment for your project](#1-setting-an-environment-for-your-project) +- [Setting Up BigQuery to work with Airbyte and dbt](#2-setting-up-bigquery) +- [Setting Up Airbyte Connectors with Terraform](#3-setting-up-airbyte-connectors-with-terraform) +- [Setting Up the dbt Project](#4-setting-up-the-dbt-project) +- [Orchestrating with Dagster](#5-orchestrating-with-dagster) +- [Next Steps](#next-steps) + +## Prerequisites + +Before you embark on this integration, ensure you have the following set up and ready: + +1. **Python 3.10 or later**: If not installed, download and install it from [Python's official website](https://www.python.org/downloads/). + +2. **Docker and Docker Compose (Docker Desktop)**: Install [Docker](https://docs.docker.com/get-docker/) following the official documentation for your specific OS. + +3. **Airbyte OSS version**: Deploy the open-source version of Airbyte. Follow the installation instructions from the [Airbyte Documentation](https://docs.airbyte.com/quickstart/deploy-airbyte/). + +4. **Terraform**: Terraform will help you provision and manage the Airbyte resources. If you haven't installed it, follow the [official Terraform installation guide](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli). + +5. **Google Cloud account with BigQuery**: You will also need to add the necessary permissions to allow Airbyte and dbt to access the data in BigQuery. A step-by-step guide is provided [below](#2-setting-up-bigquery). + +## Architecture + +![img](assets/a1.png) + +## 1. Setting an environment for your project + +Get the project up and running on your local machine by following these steps: + +1. **Clone the repository (Clone only this quickstart)**: + + ```bash + git clone --filter=blob:none --sparse https://github.com/airbytehq/quickstarts.git + ``` + + ```bash + cd quickstarts + ``` + + ```bash + git sparse-checkout add performance_optimization_stack + ``` + +2. **Navigate to the directory**: + + ```bash + cd performance_optimization_stack + ``` + +3. **Set Up a Virtual Environment**: + + - For Mac: + ```bash + python3 -m venv venv + source venv/bin/activate + ``` + - For Windows: + ```bash + python -m venv venv + .\venv\Scripts\activate + ``` + +4. **Install Dependencies**: + ```bash + pip install -e ".[dev]" + ``` + +## 2. Setting Up BigQuery + +#### 1. **Create a Google Cloud Project** + +- If you have a Google Cloud project, you can skip this step. +- Go to the [Google Cloud Console](https://console.cloud.google.com/). +- Click on the "Select a project" dropdown at the top right and select "New Project". +- Give your project a name and follow the steps to create it. + +#### 2. **Create BigQuery Datasets** + +- In the Google Cloud Console, go to BigQuery. +- Make two new datasets: `raw_data` for Airbyte and `transformed_data` for dbt. + - If you pick different names, remember to change the names in the code too. + +**How to create a dataset:** + +- In the left sidebar, click on your project name. +- Click “Create Dataset”. +- Enter the dataset ID (either `raw_data` or `transformed_data`). +- Click "Create Dataset". + +#### 3. **Create Service Accounts and Assign Roles** + +- Go to “IAM & Admin” > “Service accounts” in the Google Cloud Console. +- Click “Create Service Account”. +- Name your service account (like `airbyte-service-account`). +- Assign the “BigQuery Data Editor” and “BigQuery Job User” roles to the service account. +- Follow the same steps to make another service account for dbt (like `dbt-service-account`) and assign the roles. + +**How to create a service account and assign roles:** + +- While creating the service account, under the “Grant this service account access to project” section, click the “Role” dropdown. +- Choose the “BigQuery Data Editor” and “BigQuery Job User” roles. +- Finish the creation process. + +#### 4. **Generate JSON Keys for Service Accounts** + +- For both service accounts, make a JSON key to let the service accounts sign in. + +**How to generate JSON key:** + +- Find the service account in the “Service accounts” list. +- Click on the service account name. +- In the “Keys” section, click “Add Key” and pick JSON. +- The key will download automatically. Keep it safe and don’t share it. +- Do this for the other service account too. + +## 3. Setting Up Airbyte Connectors with Terraform + +Airbyte allows you to create connectors for sources and destinations, facilitating data synchronization between various platforms. In this project, we're harnessing the power of Terraform to automate the creation of these connectors and the connections between them. Here's how you can set this up: + +1. **Navigate to the Airbyte Configuration Directory**: + + Change to the relevant directory containing the Terraform configuration for Airbyte: + + ```bash + cd infra/airbyte + ``` + +2. **Modify Configuration Files**: + + Within the `infra/airbyte` directory, you'll find three crucial Terraform files: + + - `provider.tf`: Defines the Airbyte provider. + - `main.tf`: Contains the main configuration for creating Airbyte resources. + - `variables.tf`: Holds various variables, including credentials. + + Adjust the configurations in these files to suit your project's needs. Specifically, provide credentials for your BigQuery connection. You can utilize the `variables.tf` file to manage these credentials. + +3. **Initialize Terraform**: + + This step prepares Terraform to create the resources defined in your configuration files. + + ```bash + terraform init + ``` + +4. **Review the Plan**: + + Before applying any changes, review the plan to understand what Terraform will do. + + ```bash + terraform plan + ``` + +5. **Apply Configuration**: + + After reviewing and confirming the plan, apply the Terraform configurations to create the necessary Airbyte resources. + + ```bash + terraform apply + ``` + +6. **Verify in Airbyte UI**: + + Once Terraform completes its tasks, navigate to the [Airbyte UI](http://localhost:8000/). Here, you should see your source and destination connectors, as well as the connection between them, set up and ready to go. + +7. **Add Normalization to the Airbyte Connection**: + + At the moment of creating this Quickstart, it's not possible to select normalization via Terraform, so you need to select that manually. In the Airbyte UI, go to the "Connections" tab, select the "Datadog to BigQuery" connection, go to the "Transformation" tab and select "Normalized tabular data" and save your changes. + +## 4. Setting Up the dbt Project + +[dbt (data build tool)](https://www.getdbt.com/) allows you to transform your data by writing, documenting, and executing SQL workflows. Setting up the dbt project requires specifying connection details for your data platform, in this case, BigQuery. Here’s a step-by-step guide to help you set this up: + +1. **Navigate to the dbt Project Directory**: + + Change to the directory containing the dbt configuration: + + ```bash + cd dbt_project + ``` + +2. **Update Connection Details**: + + You'll find a `profiles.yml` file within the directory. This file contains configurations for dbt to connect with your data platform. Update this file with your BigQuery connection details. + +3. **Utilize Environment Variables (Optional but Recommended)**: + + To keep your credentials secure, you can leverage environment variables. An example is provided within the `profiles.yml` file. + +4. **Test the Connection**: + + Once you’ve updated the connection details, you can test the connection to your BigQuery instance using: + + ```bash + dbt debug + ``` + + If everything is set up correctly, this command should report a successful connection to BigQuery. + +5. **Run the Models**: + + If you would like to run the dbt models manually at this point, you can do so by executing: + + ```bash + dbt run + ``` + + You can verify the data has been transformed by going to BigQuery and checking the `transformed_data` dataset. + +## 5. Orchestrating with Dagster + +[Dagster](https://dagster.io/) is a modern data orchestrator designed to help you build, test, and monitor your data workflows. In this section, we'll walk you through setting up Dagster to oversee both the Airbyte and dbt workflows: + +1. **Navigate to the Orchestration Directory**: + + Switch to the directory containing the Dagster orchestration configurations: + + ```bash + cd orchestration + ``` + +2. **Set Environment Variables**: + + Dagster requires certain environment variables to be set to interact with other tools like dbt and Airbyte. Set the following variables: + + ```bash + export DAGSTER_DBT_PARSE_PROJECT_ON_LOAD=1 + export AIRBYTE_PASSWORD=password + ``` + + Note: The `AIRBYTE_PASSWORD` is set to `password` as a default for local Airbyte instances. If you've changed this during your Airbyte setup, ensure you use the appropriate password here. + +3. **Launch the Dagster UI**: + + With the environment variables in place, kick-start the Dagster UI: + + ```bash + dagster dev + ``` + +4. **Access Dagster in Your Browser**: + + Open your browser and navigate to: + + ``` + http://127.0.0.1:3000 + ``` + + Here, you should see assets for both Airbyte and dbt. To get an overview of how these assets interrelate, click on "view global asset lineage". This will give you a clear picture of the data lineage, visualizing how data flows between the tools. + +5. **Materialize Dagster Assets**: + In the Dagster UI, click on "Materialize all". This should trigger the full pipeline. First the Airbyte sync to extract data from Datadog and load it into BigQuery, and then dbt to transform the raw data, materializing the `staging` and `marts` models. + +## Next Steps + +Bravo on setting up the Performance Analytics Stack! 🥳 Here's what you can do next: + +### 1. **Dive into Performance Insights** + +- Explore the transformed data. What patterns can you recognize? How can these insights help optimize system performance? + +### 2. **Customize Your dbt Models** + +- Tailor your dbt models to better fit your performance analysis needs. Add more complex transformations or aggregations to uncover deeper insights. + +### 3. **Automate Alerting** + +- Integrate alerting systems to notify you of anomalies in performance metrics. This can help in proactive system optimization.. + +### 4. **Enhance Data Quality and Testing** + +- Implement data quality tests in dbt to ensure the reliability and accuracy of your transformations. Use dbt's testing features to validate your data and catch issues early on. + +### 5. **Integrate More Data Sources** + +- Consider pulling data from other systems using Airbyte, enhancing the depth of your performance analytics. + +### 6. **Scale Up** + +- As your data grows, consider scaling up your infrastructure and dbt models to handle the increased load efficiently. + +### 7. **Contribute to the Community** + +- Share your learnings, new dbt models, or any other enhancements with the community. Your contributions can help others optimize their systems too!. diff --git a/performance_optimization_stack/assets/a1.png b/performance_optimization_stack/assets/a1.png new file mode 100644 index 0000000000000000000000000000000000000000..b9481b9cb9583d8249e64aa304139f8ca81a4937 GIT binary patch literal 149847 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≻7gug|OoYNRC$tg>ZOphemEOwpX(lp| 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 D`dNbc literal 0 HcmV?d00001 diff --git a/performance_optimization_stack/dbt_project/.gitignore b/performance_optimization_stack/dbt_project/.gitignore new file mode 100644 index 0000000..eae4ddb --- /dev/null +++ b/performance_optimization_stack/dbt_project/.gitignore @@ -0,0 +1,6 @@ + +target/ +dbt_packages/ +logs/ + +.user.yml diff --git a/performance_optimization_stack/dbt_project/README.md b/performance_optimization_stack/dbt_project/README.md new file mode 100644 index 0000000..7874ac8 --- /dev/null +++ b/performance_optimization_stack/dbt_project/README.md @@ -0,0 +1,15 @@ +Welcome to your new dbt project! + +### Using the starter project + +Try running the following commands: +- dbt run +- dbt test + + +### Resources: +- Learn more about dbt [in the docs](https://docs.getdbt.com/docs/introduction) +- Check out [Discourse](https://discourse.getdbt.com/) for commonly asked questions and answers +- Join the [chat](https://community.getdbt.com/) on Slack for live discussions and support +- Find [dbt events](https://events.getdbt.com) near you +- Check out [the blog](https://blog.getdbt.com/) for the latest news on dbt's development and best practices diff --git a/performance_optimization_stack/dbt_project/analyses/.gitkeep b/performance_optimization_stack/dbt_project/analyses/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/performance_optimization_stack/dbt_project/dbt_project.yml b/performance_optimization_stack/dbt_project/dbt_project.yml new file mode 100644 index 0000000..125acd1 --- /dev/null +++ b/performance_optimization_stack/dbt_project/dbt_project.yml @@ -0,0 +1,39 @@ + +# Name your project! Project names should contain only lowercase characters +# and underscores. A good package name should reflect your organization's +# name or the intended use of these models +name: 'dbt_project' +version: '1.0.0' +config-version: 2 + +# This setting configures which "profile" dbt uses for this project. +profile: 'dbt_project' + +# These configurations specify where dbt should look for different types of files. +# The `model-paths` config, for example, states that models in this project can be +# found in the "models/" directory. You probably won't need to change these! +model-paths: ["models"] +analysis-paths: ["analyses"] +test-paths: ["tests"] +seed-paths: ["seeds"] +macro-paths: ["macros"] +snapshot-paths: ["snapshots"] + +clean-targets: # directories to be removed by `dbt clean` + - "target" + - "dbt_packages" + + +# Configuring models +# Full documentation: https://docs.getdbt.com/docs/configuring-models + +# In this example config, we tell dbt to build all models in the example/ +# directory as views. These settings can be overridden in the individual model +# files using the `{{ config(...) }}` macro. +models: + dbt_project: + # Config indicated by + and applies to all files under models/example/ + staging: + +materialized: view + marts: + +materialized: view diff --git a/performance_optimization_stack/dbt_project/macros/.gitkeep b/performance_optimization_stack/dbt_project/macros/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/performance_optimization_stack/dbt_project/models/marts/daily_cpu_usage.sql b/performance_optimization_stack/dbt_project/models/marts/daily_cpu_usage.sql new file mode 100644 index 0000000..2e9c19e --- /dev/null +++ b/performance_optimization_stack/dbt_project/models/marts/daily_cpu_usage.sql @@ -0,0 +1,18 @@ +WITH daily_cpu AS ( + SELECT + DATE(metric_timestamp) AS metric_date, + AVG(value) AS avg_cpu_usage, + MAX(value) AS max_cpu_usage, + MIN(value) AS min_cpu_usage + FROM {{ ref('stg_datadog_metrics') }} + WHERE metric_name = 'cpu.usage' + GROUP BY 1 +) + +SELECT + metric_date, + ROUND(avg_cpu_usage, 2) AS avg_cpu, + ROUND(max_cpu_usage, 2) AS max_cpu, + ROUND(min_cpu_usage, 2) AS min_cpu +FROM daily_cpu +ORDER BY metric_date \ No newline at end of file diff --git a/performance_optimization_stack/dbt_project/models/marts/daily_error_logs.sql b/performance_optimization_stack/dbt_project/models/marts/daily_error_logs.sql new file mode 100644 index 0000000..3e4009e --- /dev/null +++ b/performance_optimization_stack/dbt_project/models/marts/daily_error_logs.sql @@ -0,0 +1,7 @@ +SELECT + DATE(log_timestamp) AS log_date, + COUNT(log_id) AS total_errors +FROM {{ ref('stg_datadog_logs') }} +WHERE log_level_normalized = 'ERROR' +GROUP BY 1 +ORDER BY 1 DESC diff --git a/performance_optimization_stack/dbt_project/models/marts/hourly_user_activity.sql b/performance_optimization_stack/dbt_project/models/marts/hourly_user_activity.sql new file mode 100644 index 0000000..770cdbc --- /dev/null +++ b/performance_optimization_stack/dbt_project/models/marts/hourly_user_activity.sql @@ -0,0 +1,8 @@ +SELECT + TIMESTAMP_TRUNC(log_timestamp, HOUR) AS log_hour, + source AS user_id, + COUNT(log_id) AS activity_count +FROM {{ ref('stg_datadog_logs') }} +WHERE service = 'user_activity' +GROUP BY 1, 2 +ORDER BY 1 DESC, 2 diff --git a/performance_optimization_stack/dbt_project/models/sources/datadog_source.yml b/performance_optimization_stack/dbt_project/models/sources/datadog_source.yml new file mode 100644 index 0000000..c20777a --- /dev/null +++ b/performance_optimization_stack/dbt_project/models/sources/datadog_source.yml @@ -0,0 +1,33 @@ +version: 2 + +sources: + - name: datadog + # Use your BigQuery project ID + database: "{{ env_var('BIGQUERY_PROJECT_ID', '') }}" + # Use your BigQuery dataset name + schema: datadog_airbyte + tables: + - name: logs + columns: + - name: log_id + description: "Unique identifier for each log entry" + - name: timestamp + description: "Timestamp when the log was created" + - name: log_level + description: "Level of the log (e.g., ERROR, INFO)" + - name: message + description: "Log message details" + - name: service + description: "Associated service for the log" + - name: source + description: "Source or application that created the log" + - name: metrics + columns: + - name: metric_id + description: "Unique identifier for each metric entry" + - name: timestamp + description: "Timestamp when the metric was recorded" + - name: metric_name + description: "Name of the metric (e.g., cpu.usage)" + - name: value + description: "Value of the recorded metric" diff --git a/performance_optimization_stack/dbt_project/models/staging/stg_datadog_logs.sql b/performance_optimization_stack/dbt_project/models/staging/stg_datadog_logs.sql new file mode 100644 index 0000000..e69de29 diff --git a/performance_optimization_stack/dbt_project/models/staging/stg_datadog_metrics.sql b/performance_optimization_stack/dbt_project/models/staging/stg_datadog_metrics.sql new file mode 100644 index 0000000..385c750 --- /dev/null +++ b/performance_optimization_stack/dbt_project/models/staging/stg_datadog_metrics.sql @@ -0,0 +1,6 @@ +SELECT + metric_id, + TIMESTAMP(timestamp) AS metric_timestamp, + metric_name, + value +FROM {{ source('datadog', 'metrics') }} \ No newline at end of file diff --git a/performance_optimization_stack/dbt_project/profiles.yml b/performance_optimization_stack/dbt_project/profiles.yml new file mode 100644 index 0000000..65cc52f --- /dev/null +++ b/performance_optimization_stack/dbt_project/profiles.yml @@ -0,0 +1,16 @@ +dbt_project: + outputs: + dev: + dataset: transformed_data + job_execution_timeout_seconds: 300 + job_retries: 1 + # Use an env variable to indicate your JSON key file path + keyfile: "{{ env_var('DBT_BIGQUERY_KEYFILE_PATH', '') }}" + location: US + method: service-account + priority: interactive + # Indicate your BigQuery project ID + project: your_project_id + threads: 1 + type: bigquery + target: dev \ No newline at end of file diff --git a/performance_optimization_stack/dbt_project/seeds/.gitkeep b/performance_optimization_stack/dbt_project/seeds/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/performance_optimization_stack/dbt_project/snapshots/.gitkeep b/performance_optimization_stack/dbt_project/snapshots/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/performance_optimization_stack/dbt_project/tests/.gitkeep b/performance_optimization_stack/dbt_project/tests/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/performance_optimization_stack/infra/.gitignore b/performance_optimization_stack/infra/.gitignore new file mode 100644 index 0000000..dc82526 --- /dev/null +++ b/performance_optimization_stack/infra/.gitignore @@ -0,0 +1,34 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc \ No newline at end of file diff --git a/performance_optimization_stack/infra/airbyte/.terraform.lock.hcl b/performance_optimization_stack/infra/airbyte/.terraform.lock.hcl new file mode 100644 index 0000000..e8d9f86 --- /dev/null +++ b/performance_optimization_stack/infra/airbyte/.terraform.lock.hcl @@ -0,0 +1,25 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/airbytehq/airbyte" { + version = "0.3.3" + constraints = "0.3.3" + hashes = [ + "h1:a6g5uWP/pt1/popVNlKwnTssWNfdYY4KVFPMisN/yvU=", + "zh:0efa470b34d9b912b47efe4469c51713bfc3c2413e52c17e1e903f2a3cddb2f6", + "zh:1bddd69fa2c2d4f3e239d60555446df9bc4ce0c0cabbe7e092fe1d44989ab004", + "zh:2e20540403a0010007b53456663fb037b24e30f6c8943f65da1bcf7fa4dfc8a6", + "zh:2f415369ad884e8b7115a5c5ff229d052f7af1fca27abbfc8ebef379ed11aec4", + "zh:46fd9a906f4b6461112dcc5a5aa01a3fcd7a19a72d4ad0b2e37790da37701fe1", + "zh:83503ebb77bb6d6941c42ba323cf22380d08a1506554a2dcc8ac54e74c0886a1", + "zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f", + "zh:8fd770eff726826d3a63b9e3733c5455b5cde004027b04ee3f75888eb8538c90", + "zh:b0fc890ed4f9b077bf70ed121cc3550e7a07d16e7798ad517623274aa62ad7b0", + "zh:c2a01612362da9b73cd5958f281e1aa7ff09af42182e463097d11ed78e778e72", + "zh:c64b2bb1887a0367d64ba3393d4b3a16c418cf5b1792e2e7aae7c0b5413eb334", + "zh:ce14ebbf0ed91913ec62655a511763dec62b5779de9a209bd6f1c336640cddc0", + "zh:e0662ca837eee10f7733ea9a501d995281f56bd9b410ae13ad03eb106011db14", + "zh:e103d480fc6066004bc98e9e04a141a1f55b918cc2912716beebcc6fc4c872fb", + "zh:e2507049098f0f1b21cb56870f4a5ef624bcf6d3959e5612eada1f8117341648", + ] +} diff --git a/performance_optimization_stack/infra/airbyte/main.tf b/performance_optimization_stack/infra/airbyte/main.tf new file mode 100644 index 0000000..bdb1a61 --- /dev/null +++ b/performance_optimization_stack/infra/airbyte/main.tf @@ -0,0 +1,53 @@ +// Airbyte Terraform provider documentation: https://registry.terraform.io/providers/airbytehq/airbyte/latest/docs + + +// Sources +resource "airbyte_source_datadog" "my_source_datadog" { + configuration = { + source_type = "datadog" + credentials = { + source_datadog_authentication_api_key = { + api_key = var.datadog_api_key + } + } + start_date = "2020-10-15T00:00:00Z" + } + name = "Datadog Metrics and Logs" + workspace_id = var.workspace_id +} + +// Destinations +resource "airbyte_destination_bigquery" "bigquery" { + configuration = { + dataset_id = var.dataset_id + dataset_location = "US" + destination_type = "bigquery" + project_id = var.project_id + credentials_json = var.credentials_json + loading_method = { + destination_bigquery_loading_method_standard_inserts = { + method = "Standard" + } + } + } + name = "BigQuery" + workspace_id = var.workspace_id +} + +// Connections +resource "airbyte_connection" "datadog_bigquery" { + name = "Datadog to BigQuery" + source_id = airbyte_source_datadog.my_source_datadog.source_id + destination_id = airbyte_destination_bigquery.bigquery.destination_id + configurations = { + streams = [ + { + name = "logs" + }, + { + name = "metrics" + }, + // Add other Datadog streams you are interested in + ] + } +} \ No newline at end of file diff --git a/performance_optimization_stack/infra/airbyte/provider.tf b/performance_optimization_stack/infra/airbyte/provider.tf new file mode 100644 index 0000000..98224e9 --- /dev/null +++ b/performance_optimization_stack/infra/airbyte/provider.tf @@ -0,0 +1,20 @@ +// Airbyte Terraform provider documentation: https://registry.terraform.io/providers/airbytehq/airbyte/latest/docs + +terraform { + required_providers { + airbyte = { + source = "airbytehq/airbyte" + version = "0.3.3" + } + } +} + +provider "airbyte" { + // If running locally (Airbyte OSS) with docker-compose using the airbyte-proxy, + // include the actual password/username you've set up (or use the defaults below) + username = "airbyte" + password = "password" + + // if running locally (Airbyte OSS), include the server url to the airbyte-api-server + server_url = "http://localhost:8006/v1" +} \ No newline at end of file diff --git a/performance_optimization_stack/infra/airbyte/variables.tf b/performance_optimization_stack/infra/airbyte/variables.tf new file mode 100644 index 0000000..6421def --- /dev/null +++ b/performance_optimization_stack/infra/airbyte/variables.tf @@ -0,0 +1,27 @@ +variable "api_token" { + type = string +} + +variable "email" { + type = string +} + +variable "workspace_id" { + type = string +} + +variable "dataset_id" { + type = string +} + +variable "project_id" { + type = string +} + +variable "credentials_json" { + type = string +} + + + + diff --git a/performance_optimization_stack/orchestration/orchestration/__init__.py b/performance_optimization_stack/orchestration/orchestration/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/performance_optimization_stack/orchestration/orchestration/assets.py b/performance_optimization_stack/orchestration/orchestration/assets.py new file mode 100644 index 0000000..3ebe97f --- /dev/null +++ b/performance_optimization_stack/orchestration/orchestration/assets.py @@ -0,0 +1,20 @@ +import os +from dagster import OpExecutionContext +from dagster_dbt import DbtCliResource, dbt_assets +from dagster_airbyte import AirbyteResource, load_assets_from_airbyte_instance + +from .constants import dbt_manifest_path + +@dbt_assets(manifest=dbt_manifest_path) +def dbt_project_dbt_assets(context: OpExecutionContext, dbt: DbtCliResource): + yield from dbt.cli(["build"], context=context).stream() + +airbyte_instance = AirbyteResource( + host="localhost", + port="8000", + # If using basic auth, include username and password: + username="airbyte", + password=os.getenv("AIRBYTE_PASSWORD") +) + +airbyte_assets = load_assets_from_airbyte_instance(airbyte_instance, key_prefix="datadog") \ No newline at end of file diff --git a/performance_optimization_stack/orchestration/orchestration/constants.py b/performance_optimization_stack/orchestration/orchestration/constants.py new file mode 100644 index 0000000..709888c --- /dev/null +++ b/performance_optimization_stack/orchestration/orchestration/constants.py @@ -0,0 +1,15 @@ +import os +from pathlib import Path + +from dagster_dbt import DbtCliResource + +dbt_project_dir = Path(__file__).joinpath("..", "..", "..", "dbt_project").resolve() +dbt = DbtCliResource(project_dir=os.fspath(dbt_project_dir)) + +# If DAGSTER_DBT_PARSE_PROJECT_ON_LOAD is set, a manifest will be created at runtime. +# Otherwise, we expect a manifest to be present in the project's target directory. +if os.getenv("DAGSTER_DBT_PARSE_PROJECT_ON_LOAD"): + dbt_parse_invocation = dbt.cli(["parse"], manifest={}).wait() + dbt_manifest_path = dbt_parse_invocation.target_path.joinpath("manifest.json") +else: + dbt_manifest_path = dbt_project_dir.joinpath("target", "manifest.json") \ No newline at end of file diff --git a/performance_optimization_stack/orchestration/orchestration/definitions.py b/performance_optimization_stack/orchestration/orchestration/definitions.py new file mode 100644 index 0000000..2d92dce --- /dev/null +++ b/performance_optimization_stack/orchestration/orchestration/definitions.py @@ -0,0 +1,16 @@ +import os + +from dagster import Definitions +from dagster_dbt import DbtCliResource + +from .assets import dbt_project_dbt_assets, airbyte_assets +from .constants import dbt_project_dir +from .schedules import schedules + +defs = Definitions( + assets=[dbt_project_dbt_assets, airbyte_assets], + schedules=schedules, + resources={ + "dbt": DbtCliResource(project_dir=os.fspath(dbt_project_dir)), + }, +) \ No newline at end of file diff --git a/performance_optimization_stack/orchestration/orchestration/schedules.py b/performance_optimization_stack/orchestration/orchestration/schedules.py new file mode 100644 index 0000000..9c0ac94 --- /dev/null +++ b/performance_optimization_stack/orchestration/orchestration/schedules.py @@ -0,0 +1,15 @@ +""" +To add a daily schedule that materializes your dbt assets, uncomment the following lines. +""" +from dagster_dbt import build_schedule_from_dbt_selection + +from .assets import dbt_project_dbt_assets + +schedules = [ +# build_schedule_from_dbt_selection( +# [dbt_project_dbt_assets], +# job_name="materialize_dbt_models", +# cron_schedule="0 0 * * *", +# dbt_select="fqn:*", +# ), +] \ No newline at end of file diff --git a/performance_optimization_stack/orchestration/pyproject.toml b/performance_optimization_stack/orchestration/pyproject.toml new file mode 100644 index 0000000..6e83f2f --- /dev/null +++ b/performance_optimization_stack/orchestration/pyproject.toml @@ -0,0 +1,7 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[tool.dagster] +module_name = "orchestration.definitions" +code_location_name = "orchestration" \ No newline at end of file diff --git a/performance_optimization_stack/orchestration/setup.py b/performance_optimization_stack/orchestration/setup.py new file mode 100644 index 0000000..5b102a9 --- /dev/null +++ b/performance_optimization_stack/orchestration/setup.py @@ -0,0 +1,19 @@ +from setuptools import find_packages, setup + +setup( + name="orchestration", + version="0.0.1", + packages=find_packages(), + install_requires=[ + "dagster", + "dagster-cloud", + "dagster-dbt", + "dbt-core>=1.4.0", + "dbt-bigquery", + ], + extras_require={ + "dev": [ + "dagster-webserver", + ] + }, +) \ No newline at end of file diff --git a/performance_optimization_stack/setup.py b/performance_optimization_stack/setup.py new file mode 100644 index 0000000..2f6b135 --- /dev/null +++ b/performance_optimization_stack/setup.py @@ -0,0 +1,14 @@ +from setuptools import find_packages, setup + +setup( + name="airbyte-dbt-dagster", + packages=find_packages(), + install_requires=[ + "dbt-bigquery", + "dagster", + "dagster-cloud", + "dagster-dbt", + "dagster-airbyte", + ], + extras_require={"dev": ["dagit", "pytest"]}, +) \ No newline at end of file