diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 95805f99..c85e8409 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -35,23 +35,6 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 16 - - uses: actions/checkout@v3 - with: - repository: 'pyroscope-io/docs-private' - ref: 'master' - path: 'docs-private' - token: ${{ secrets.DOCS_PRIVATE_ACCESS_TOKEN }} - - name: copy Makefile - run: mv docs-private/Makefile Makefile - - name: copy generate-pdfs.rb - run: mv docs-private/generate-pdfs.rb generate-pdfs.rb - - name: copy extra-plugins.js - run: mv docs-private/extra-plugins.js extra-plugins.js - # For PRs we just build - # for merges we deploy - - name: build - if: ${{ github.event_name == 'pull_request' }} - run: make build - name: deploy if: ${{ github.event_name != 'pull_request' }} run: make deploy diff --git a/.tool-versions b/.tool-versions index f62fc07b..ffd2870b 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -nodejs 14.17.0 +nodejs 16.18.0 diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..8663eed8 --- /dev/null +++ b/Makefile @@ -0,0 +1,51 @@ +# updates slack url +SLACK_INVITE_URL="https://join.slack.com/t/pyroscope/shared_invite/zt-188djmr07-fGVF19hFTPZrLCFJAgwPyw" + +API_ADDRESS=https://pyroscope.io + +.PHONY: install +install: + yarn install + +.PHONY: build-info +build-info: + git show-ref --head --hash=8 2> /dev/null | head -n1 > static/build-info.txt + date >> static/build-info.txt + +.PHONY: build +build: install build-info + yarn build + +.PHONY: generate-pdfs +generate-pdfs: invalidate-cache + ruby generate-pdfs.rb + +.PHONY: create-redirects +create-redirects: + ruby create-redirects.rb + +.PHONY: slack-url +slack-url: + aws s3api put-object --bucket pyroscope.io --key slack/index.html --body static/slack/index.html --website-redirect-location ${SLACK_INVITE_URL} + aws cloudfront create-invalidation --distribution-id E35O9P6VNL3Z5X --paths '/*' + +.PHONY: upload +upload: + # This bucket is set up with a static website endpoint and no public-read. + # There's a cloudfront distribution in front of it. + # Access is set up to only allow reads with a special refferer header that's + # set on cloudfront side. This way it's only accessible via cloudfront. + aws s3 sync --exclude 'videos/*' --exclude 'storybook/*' build/ s3://pyroscope.io/ + aws s3 cp --acl public-read static/img/favicon.ico s3://pyroscope.io/favicon.ico + +.PHONY: invalidate-cache +invalidate-cache: + aws cloudfront wait invalidation-completed --distribution-id E35O9P6VNL3Z5X --id $(shell aws cloudfront create-invalidation --distribution-id E35O9P6VNL3Z5X --paths '/*' | jq .Invalidation.Id) + +.PHONY: deploy +deploy: + $(MAKE) build + $(MAKE) upload + $(MAKE) create-redirects + $(MAKE) slack-url + $(MAKE) invalidate-cache diff --git a/create-redirects.rb b/create-redirects.rb new file mode 100644 index 00000000..ce593074 --- /dev/null +++ b/create-redirects.rb @@ -0,0 +1,14 @@ +require 'json' + +JSON.parse(File.read("redirects.json")).each_pair do |from, to| + from = from.sub(/^\//, "").sub(/\/$/, "") + next if to == "" + + puts "Redirect 301 #{from} #{to}" + system( + "aws", "s3api", "put-object", + "--bucket", "pyroscope.io", + "--key", "#{from}/index.html", + "--body", "static/slack/index.html", + "--website-redirect-location", to) +end diff --git a/docs/agent-install-linux.mdx b/docs/agent-install-linux.mdx index e7c34c9f..8d2d1365 100644 --- a/docs/agent-install-linux.mdx +++ b/docs/agent-install-linux.mdx @@ -94,7 +94,7 @@ Pyroscope team maintain and sign packages for the following Linux distributions: :::tip -To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](/downloads) page. +To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](https://github.com/grafana/pyroscope/releases) page. ::: **Pyroscope Agent** is not installed as `systemd` service. If you need to profile a process which is running as a service, diff --git a/docs/agent-install-macos.mdx b/docs/agent-install-macos.mdx index 56202915..38e66d55 100644 --- a/docs/agent-install-macos.mdx +++ b/docs/agent-install-macos.mdx @@ -22,7 +22,7 @@ brew install pyroscope-io/brew/pyroscope ``` :::tip -To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](/downloads) page. +To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](https://github.com/grafana/pyroscope/releases) page. ::: ## Verify the installation diff --git a/docs/agent-install-windows.mdx b/docs/agent-install-windows.mdx index f5c29cbc..f660ccbb 100644 --- a/docs/agent-install-windows.mdx +++ b/docs/agent-install-windows.mdx @@ -45,7 +45,7 @@ Install MSI package with `msiexec`:
:::tip -To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](/downloads) page. +To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](https://github.com/grafana/pyroscope/releases) page. ::: ## Verify the installation diff --git a/docs/architecture.mdx b/docs/architecture.mdx index f7bf608e..813a71e1 100644 --- a/docs/architecture.mdx +++ b/docs/architecture.mdx @@ -62,7 +62,7 @@ Location for various helper programs / scripts. ### `scripts/packages` -Helper code / files we use to make releases and generate packages for Linux / macOS. See [Downloads](/downloads) page for more information. +Helper code / files we use to make releases and generate packages for Linux / macOS. See [Downloads](https://github.com/grafana/pyroscope/releases) page for more information. ### `third_party/rustdeps` diff --git a/docs/developer-guide.mdx b/docs/developer-guide.mdx index 4d41a0e0..882c7ada 100644 --- a/docs/developer-guide.mdx +++ b/docs/developer-guide.mdx @@ -248,7 +248,7 @@ Location for various helper programs / scripts. ### /scripts/packages -Helper code / files we use to make releases and generate packages for Linux / macOS. See [Downloads](/downloads) page for more information. +Helper code / files we use to make releases and generate packages for Linux / macOS. See [Downloads](https://github.com/grafana/pyroscope/releases) page for more information. ### /third_party/rustdeps diff --git a/docs/installing-pyroscope-overview.mdx b/docs/installing-pyroscope-overview.mdx index 00c25ca8..9f966794 100644 --- a/docs/installing-pyroscope-overview.mdx +++ b/docs/installing-pyroscope-overview.mdx @@ -29,7 +29,7 @@ export const Video = () => ( ### Step 1: Install Pyroscope Server -We provide a few different ways for you to install Pyroscope Server on [Linux](server-install-linux.mdx), [macOS](server-install-macos.mdx) or run it in [Docker](docker-guide.mdx). To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](/downloads) page. +We provide a few different ways for you to install Pyroscope Server on [Linux](server-install-linux.mdx), [macOS](server-install-macos.mdx) or run it in [Docker](docker-guide.mdx). To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](https://github.com/grafana/pyroscope/releases) page. After you start the server you should be able to open [http://localhost:4040/](http://localhost:4040/) and see that pyroscope server is profiling itself (`pyroscope.server.cpu` application). diff --git a/docs/server-install-linux.mdx b/docs/server-install-linux.mdx index 0f1c776d..6a1a7726 100644 --- a/docs/server-install-linux.mdx +++ b/docs/server-install-linux.mdx @@ -104,7 +104,7 @@ Pyroscope team maintain and sign packages for the following Linux distributions: :::tip -To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](/downloads) page. +To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](https://github.com/grafana/pyroscope/releases) page. ::: Use `systemctl` to enable and start the service: diff --git a/docs/server-install-macos.mdx b/docs/server-install-macos.mdx index 252f0f6f..0244c6d2 100644 --- a/docs/server-install-macos.mdx +++ b/docs/server-install-macos.mdx @@ -22,7 +22,7 @@ brew install pyroscope-io/brew/pyroscope ``` :::tip -To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](/downloads) page. +To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our [Downloads](https://github.com/grafana/pyroscope/releases) page. ::: To start pyroscope server and register it to launch at login (on boot), run the following command: diff --git a/docs/storage-design.mdx b/docs/storage-design.mdx index 566c9b2b..cffe854f 100644 --- a/docs/storage-design.mdx +++ b/docs/storage-design.mdx @@ -7,6 +7,10 @@ slug: /storage-design ## Storage Efficiency +:::note +This article is relevant for pre-v1.0.0 versions of Pyroscope. Since acquisition of Pyroscope in March 2023 we've been working on a new horizontally scalable storage engine that was released in v1.0.0. You can learn more about it [here](https://grafana.com/docs/pyroscope/next/reference-pyroscope-architecture/). This article is here for historical purposes. +::: + The challenge with continuous profiling is that if you just take frequent chunks of profiling data, compress it, and store it somewhere, it becomes: 1. Too much data to store efficiently 2. Too much data to query quickly diff --git a/docusaurus.config.js b/docusaurus.config.js index 856e4b01..7d886ecc 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -35,12 +35,12 @@ module.exports = { appUrl: "https://app.posthog.com", // optional enableInDevelopment: false, // optional }, - algolia: { - apiKey: '36ebff722c41a8fb7d1b11b4abcc980c', - indexName: 'pyroscope', - contextualSearch: false, - searchParameters: {}, - }, + // algolia: { + // apiKey: '36ebff722c41a8fb7d1b11b4abcc980c', + // indexName: 'pyroscope', + // contextualSearch: false, + // searchParameters: {}, + // }, googleAnalytics: { trackingID: 'UA-185672451-1' }, @@ -56,14 +56,13 @@ module.exports = { }, items: [ { - to: 'docs/', - activeBasePath: 'docs', + href: "https://grafana.com/docs/pyroscope/latest/", label: 'Docs', position: 'left', }, {to: 'blog', label: 'Blog', position: 'left'}, { - href: 'https://pyroscope.io/slack/', + href: 'https://slack.grafana.com/', icon: "/img/navbar/slack.svg", label: 'Slack', position: 'right', @@ -96,15 +95,15 @@ module.exports = { items: [ { label: 'Getting Started', - to: 'docs', + href: "https://grafana.com/docs/pyroscope/latest/", }, { label: 'Downloads', - to: 'downloads', + href: 'https://github.com/grafana/pyroscope/releases', }, { label: 'Deployment Guide', - to: 'docs/deployment', + href: 'https://grafana.com/docs/pyroscope/next/deploy-kubernetes/', }, ], }, diff --git a/generate-pdfs.rb b/generate-pdfs.rb new file mode 100644 index 00000000..2224fdbf --- /dev/null +++ b/generate-pdfs.rb @@ -0,0 +1,8 @@ +pages = %w(terms privacy subprocessors support-agreement support-policy security) + +pages.each do |x| + system "docker run -v \"$(pwd):/workspace\" pink33n/html-to-pdf --url https://pyroscope.io/#{x}/ --pdf build/#{x}.pdf" +end + +all_pages = pages.map { |x| "#{x}.pdf" }.join(' ') +system "cd build && zip legal.zip #{all_pages}" diff --git a/redirects.json b/redirects.json new file mode 100644 index 00000000..da3d7288 --- /dev/null +++ b/redirects.json @@ -0,0 +1,63 @@ +{ + "docs/admin-server-delete-app": "", + "docs/admin-server": "", + "docs/agent-configuration-adhoc": "", + "docs/agent-configuration-agent": "", + "docs/agent-configuration-connect": "", + "docs/agent-configuration-exec": "", + "docs/agent-configuration-overview": "", + "docs/agent-install-linux": "", + "docs/agent-install-macos": "", + "docs/agent-install-windows": "", + "docs/agent-overview": "", + "docs/api-key-authentication": "", + "docs/ci": "", + "docs/data-retention": "", + "docs/docker-compose": "", + "docs/docker-guide": "", + "docs/flamegraph-com": "", + "docs/flameql": "", + "docs/golang-tracing": "", + "docs/java-tracing": "", + "docs/metrics-export": "", + "docs/new-integrations": "", + "docs/php": "", + "docs/remote-write": "", + "docs/ruby-tracing": "", + "docs/server-api-reference": "", + "docs/server-install-linux": "", + "docs/server-install-macos": "", + "docs/server-overview": "", + "docs/storage-design": "", + "docs/style-guide": "", + "docs/troubleshooting-faq": "", + "docs/agent-kubernetes": "https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/helm/", + "docs/architecture": "https://grafana.com/docs/pyroscope/latest/reference-pyroscope-architecture/", + "docs/auth-github": "https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/github/", + "docs/auth-gitlab": "https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/gitlab/", + "docs/auth-google": "https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/google/", + "docs/auth-internal": "https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/", + "docs/auth-overview": "https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/", + "docs/aws-lambda": "https://github.com/grafana/pyroscope-lambda-extension", + "docs/deployment": "https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/", + "docs/developer-guide": "https://grafana.com/docs/pyroscope/latest/reference-pyroscope-architecture/", + "docs/dotnet-old": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/dotnet/", + "docs/dotnet": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/dotnet/", + "docs/ebpf": "https://grafana.com/docs/pyroscope/latest/configure-client/grafana-agent/ebpf/", + "docs/golang-old": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/go_push/", + "docs/golang-pull-mode": "https://grafana.com/docs/pyroscope/latest/configure-client/grafana-agent/go_pull/", + "docs/golang": "https://grafana.com/docs/pyroscope/next/configure-client/language-sdks/go_push/", + "docs/grafana-plugins": "https://grafana.com/docs/grafana/latest/datasources/grafana-pyroscope/", + "docs/how-pyroscope-works": "https://grafana.com/docs/pyroscope/next/get-started/", + "docs/installing-pyroscope-overview": "https://grafana.com/docs/pyroscope/next/get-started/", + "docs/java": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/java/", + "docs/kubernetes-helm-chart": "https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/helm/", + "docs/nodejs": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/nodejs/", + "docs/python": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/python/", + "docs/ruby": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/ruby/", + "docs/rust": "https://grafana.com/docs/pyroscope/latest/configure-client/language-sdks/rust/", + "docs/server-configuration": "https://grafana.com/docs/pyroscope/latest/configure-server/", + "docs/server-kubernetes": "https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/", + "docs/supported-integrations": "https://grafana.com/docs/pyroscope/latest/configure-client/", + "downloads": "https://github.com/grafana/pyroscope/releases" +} diff --git a/sidebars.js b/sidebars.js index 4b2e1aff..a0ae69b5 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1,155 +1,4 @@ module.exports = { someSidebar: [ - { - type: "category", - label: "About Pyroscope", - collapsed: false, - items: ["pyroscope-overview", "storage-design", "supported-integrations"], - }, - { - type: "category", - label: "Installing Pyroscope", - collapsed: false, - items: [ - { - type: "doc", - id: "installing-pyroscope-overview", - }, - { - type: "doc", - id: "docker-guide", - }, - { - type: "doc", - id: "kubernetes-helm-chart", - }, - { - type: "category", - label: "Quick Start", - collapsed: false, - items: [ - "server-install-macos", - "server-install-linux", - "agent-install-windows", - ], - }, - { - type: "category", - label: "Using Pyroscope", - collapsed: false, - items: [ - "agent-overview", - "integration-ebpf", - { - type: "category", - label: "Go", - collapsed: false, - items: [ - "integration-golang", - "integration-golang-tracing", - "integration-golang-pull-mode", - ], - }, - "integration-python", - { - type: "category", - label: "Java", - collapsed: false, - items: ["integration-java", "integration-java-tracing"], - }, - { - type: "category", - label: "Ruby", - collapsed: false, - items: ["integration-ruby", "integration-ruby-tracing"], - }, - "integration-rust", - "integration-php", - "integration-dotnet", - "integration-nodejs", - "integration-aws-lambda", - ], - }, - ], - }, - { - type: "category", - label: "Configure Pyroscope", - collapsed: true, - items: [ - "server-api-reference", - { - type: "category", - label: "Server Configuration", - items: [ - "server-configuration", - { - type: "category", - label: "Authentication", - collapsed: true, - items: [ - "auth-overview", - "api-key-authentication", - "auth-google", - "auth-github", - "auth-gitlab", - "auth-internal", - ], - }, - "data-retention", - "metrics-export", - "remote-write", - ], - }, - { - type: "category", - label: "Agent Configuration", - items: [ - "agent-configuration-overview", - "agent-configuration-exec", - "agent-configuration-connect", - "agent-configuration-agent", - "agent-configuration-adhoc", - ], - }, - { - type: "category", - label: "Admin Configuration", - items: ["admin-server", "admin-server-delete-app"], - }, - "troubleshooting-faq", - ], - }, - { - type: "category", - label: "Pyroscope Cloud ☁️", - collapsed: false, - items: [], - }, - { - type: "doc", - id: "flameql", - }, - { - type: "doc", - id: "deployment", - }, - { - type: "category", - label: "Developers", - items: ["new-integrations", "developer-guide", "style-guide"], - }, - { - type: "doc", - id: "grafana-plugins", - }, - { - type: "doc", - id: "flamegraph-com", - }, - { - type: "doc", - id: "ci", - }, ], }; diff --git a/src/components/Homepage/HeadSection/index.jsx b/src/components/Homepage/HeadSection/index.jsx index 93c9ac77..8105053a 100644 --- a/src/components/Homepage/HeadSection/index.jsx +++ b/src/components/Homepage/HeadSection/index.jsx @@ -13,7 +13,7 @@ import { ToggleMenuButton, MobileMenu } from '../../shared/HeaderMenuMobile' const headerMenuItems = [ { label: 'Docs', - url: '/docs/' + url: 'https://grafana.com/docs/pyroscope/latest/' }, { label: 'Pricing', @@ -27,7 +27,7 @@ const headerMenuItems = [ label: 'Community', items: [{ label: 'Slack', - url: '/slack' + url: 'https://slack.grafana.com/' }, { label: 'GitHub', url: 'https://github.com/pyroscope-io/pyroscope' diff --git a/src/components/PricingPage/Head/index.jsx b/src/components/PricingPage/Head/index.jsx index 02d8dda1..b21ebdb5 100644 --- a/src/components/PricingPage/Head/index.jsx +++ b/src/components/PricingPage/Head/index.jsx @@ -17,7 +17,7 @@ import RightPath from '/img/pricing/path85.svg'; const headerMenuItems = [ { label: 'Docs', - url: '/docs/' + url: 'https://grafana.com/docs/pyroscope/latest/' }, { label: 'Pricing', @@ -31,7 +31,7 @@ const headerMenuItems = [ label: 'Community', items: [{ label: 'Slack', - url: '/slack/' + url: 'https://slack.grafana.com/' }, { label: 'GitHub', url: 'https://github.com/pyroscope-io/pyroscope' @@ -83,7 +83,7 @@ const Head = ({ isOpenMenu, setIsOpen }) => {

Leading continuous profiling database optimized for throughput and minimizing storage costs.

- Download + Download
diff --git a/src/components/shared/SectionWrapper/index.jsx b/src/components/shared/SectionWrapper/index.jsx index cd5b4000..c7a0f4b6 100644 --- a/src/components/shared/SectionWrapper/index.jsx +++ b/src/components/shared/SectionWrapper/index.jsx @@ -8,4 +8,4 @@ const SectionWrapper = ({ children, className }) => { ) } -export default SectionWrapper; \ No newline at end of file +export default SectionWrapper; diff --git a/src/pages/downloads/index.js b/src/pages/downloads/index.js deleted file mode 100644 index b84d64f9..00000000 --- a/src/pages/downloads/index.js +++ /dev/null @@ -1,216 +0,0 @@ -import React from 'react'; -import Layout from '@theme/Layout'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; -import clsx from 'clsx'; - -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; - -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faApple, faLinux, faDocker, faWindows } from '@fortawesome/free-brands-svg-icons'; -import { faSyncAlt } from '@fortawesome/free-solid-svg-icons'; - -import packages from '../../../packages.manifest.json'; -import styles from './styles.module.scss'; - -const RPM_ARCH = { - "arm64": "aarch64", - "amd64": "x86_64", -}; - -function v(str) { - return str.replace(/^v/, ""); -} - -class Download extends React.Component { - constructor() { - super(); - this.state = { version: Object.keys(packages.releases)[0] }; - } - changeHandler = (e) => { - this.setState({ version: e.target.value }); - } - render() { - return ( - -
-
-

Download Pyroscope

-
-
-
- Version: -
-
- -
-
- -
-
- License: -
-
- Apache 2 -
-
- -
-
- Release Date: -
-
- {packages.releases[this.state.version]} -
-
-
-
-

Platforms

- - -

Architecture

- { - ["amd64", "arm64"].map((arch) => { - return -

Package Type

-
- - -
-
-

Instructions

{packages.shaMapping[`pyroscope-${v(this.state.version)}-linux-${arch}.tar.gz`]}
-
- { - ` - wget https://dl.pyroscope.io/release/pyroscope-${v(this.state.version)}-linux-${arch}.tar.gz - tar -zxvf pyroscope-${v(this.state.version)}-linux-${arch}.tar.gz - `.replace(/^\s+/mg, "") - } -

Running server

-

To start pyroscope server run pyroscope server

-
- -
-
-

Instructions

{packages.shaMapping[`pyroscope-${v(this.state.version)}-1-${RPM_ARCH[arch]}.rpm`]}
-
- { - ` - wget https://dl.pyroscope.io/release/pyroscope-${v(this.state.version)}-1-${RPM_ARCH[arch]}.rpm - sudo yum localinstall pyroscope-${v(this.state.version)}-1-${RPM_ARCH[arch]}.rpm - `.replace(/^\s+/mg, "") - } -

-
- -
-
-

Instructions

{packages.shaMapping[`pyroscope_${v(this.state.version)}_${arch}.deb`]}
-
- { - ` - wget https://dl.pyroscope.io/release/pyroscope_${v(this.state.version)}_${arch}.deb - sudo apt-get install ./pyroscope_${v(this.state.version)}_${arch}.deb - `.replace(/^\s+/mg, "") - } -
- -
-
-

Instructions

-
- { - `yay -S pyroscope-bin` - } -
-
-
-
- }) - }
-
- -
-

Instructions

-
- { - ` - brew install pyroscope-io/brew/pyroscope - `.replace(/^\s+/mg, "") - } -
- -
-

Instructions

-
- { - `[Net.ServicePointManager]::SecurityProtocol = "tls12"\n` + - `wget https://dl.pyroscope.io/release/pyroscope_agent_${v(this.state.version)}_amd64.msi ` + - `-outfile pyroscope_agent_${v(this.state.version)}_amd64.msi`.replace(/^\s+/mg, "") - } -

For instruction on how to install Pyroscope Agent on Windows, see our Documentation.

-
- -
-

Instructions

-
- { - ` - docker run -it -p 4040:4040 pyroscope/pyroscope:${v(this.state.version)} server - `.replace(/^\s+/mg, "") - } -
-
-
-
-
-
- ); - } -} - -export default Download; diff --git a/src/pages/downloads/styles.module.scss b/src/pages/downloads/styles.module.scss deleted file mode 100644 index 4b8bcf01..00000000 --- a/src/pages/downloads/styles.module.scss +++ /dev/null @@ -1,156 +0,0 @@ -.downloadPage { - margin-top: 2em; - - .downloadPageTitle { - border-bottom: 2px solid rgba(255,255,255,0.2); - padding-bottom: 0.25em - } - - .downloadInfoTable { - font-size: 20px; - width: 100%; - display: flex; - flex-direction: column; - .downloadInfoRow { - display: flex; - flex-direction: row; - height: 38px; - .downloadInfoCol { - padding-right: 10px; - &.downloadInfoTitle { - width: 200px; - } - } - } - select { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Android Emoji", EmojiSymbols, "EmojiOne Mozilla", "Twemoji Mozilla", "Segoe UI Symbol", "Noto Color Emoji"; - padding: 0.25em 0.5em; - background-color: rgba(255, 255, 255, 0.33); - color: white; - font-size: 16px; - border-radius: 4px; - border: 1px solid rgba(255, 255, 255, 0.5); - } - } - - .downloadPageTitle { - font-size: 2.5em; - } - - h3, .instructionsWrapper { - // margin-bottom: 0.75em; - margin: 0; - margin-top: 2em; - } - - .instructionsWrapper { - margin-bottom: 1em; - display: flex; - flex-direction: row; - align-items: baseline; - h3 { - margin: 0; - } - } - - .sha { - font-weight: normal; - text-align: right; - font-size: 14px; - flex: 1; - // margin: 0.5em 1em 1em; - &:before { - content: 'SHA256: '; - display: inline; - } - } - - .downloadPlatforms { - display: flex; - margin-top: 1em; - margin-bottom: 40px; - .downloadPlatform { - width: 130px; - height: 130px; - margin-right: 10px; - background-color: rgba(255,255,255,0.3); - color: #fff; - text-align: center; - cursor: pointer; - &.active { - box-shadow: inset 0 0 0 4px white; - } - .downloadPlatformIcon { - font-size: 60px; - line-height: 100px; - } - .downloadPlatformName { - font-size: 16px; - line-height: 16px; - } - } - } - - .downloadArchs { - display: flex; - margin-top: 1em; - margin-bottom: 40px; - .downloadArch { - width: 130px; - height: 40px; - margin-right: 10px; - background-color: rgba(255,255,255,0.3); - color: #fff; - text-align: center; - font-size: 16px; - line-height: 40px; - cursor: pointer; - &.active { - box-shadow: inset 0 0 0 4px white; - } - } - } - - - .extraSpace { - height: 300px; - } - - p { - margin-top: 1em; - } - - a { - color: #1398bd; - } - - .tabsPlatforms, - .tabsArch, - .tabsPackages { - margin-top: 1em; - .tabItem { - border-radius: 6px; - background-color: rgb(102, 102, 128); - margin-right: 10px; - border: 4px solid transparent; - padding: 0.75em 1.5em; - text-align: center; - color: white; - } - .tabItemActive { - background-color: #1398bd; - } - } - - .tabsPlatforms { - .tabItem { - display: flex; - flex-direction: column; - width: 150px; - .tabsIcon { - color: rgb(11, 11, 11); - font-size: 60px; - } - } - } -} diff --git a/src/pages/setup-call.js b/src/pages/setup-call.js deleted file mode 100644 index ec4f02d5..00000000 --- a/src/pages/setup-call.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; -import Layout from '@theme/Layout'; - -class SetupCall extends React.Component { - constructor() { - super(); - } - render() { - return ( - -
-
- Please contact us at contact@pyroscope.io -
-
-
- ); - } -} - -export default SetupCall; diff --git a/src/theme/DocItem/index.js b/src/theme/DocItem/index.js new file mode 100644 index 00000000..614516cf --- /dev/null +++ b/src/theme/DocItem/index.js @@ -0,0 +1,117 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React from 'react'; +import clsx from 'clsx'; +import useWindowSize from '@theme/hooks/useWindowSize'; +import DocPaginator from '@theme/DocPaginator'; +import DocVersionBanner from '@theme/DocVersionBanner'; +import Seo from '@theme/Seo'; +import DocItemFooter from '@theme/DocItemFooter'; +import TOC from '@theme/TOC'; +import TOCCollapsible from '@theme/TOCCollapsible'; +import {MainHeading} from '@theme/Heading'; +import styles from './styles.module.css'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +export default function DocItem(props) { + const {content: DocContent, versionMetadata} = props; + const {metadata, frontMatter} = DocContent; + const { + image, + keywords, + hide_title: hideTitle, + hide_table_of_contents: hideTableOfContents, + } = frontMatter; + const {description, title} = metadata; // We only add a title if: + // - user asks to hide it with frontmatter + // - the markdown content does not already contain a top-level h1 heading + + const shouldAddTitle = + !hideTitle && typeof DocContent.contentTitle === 'undefined'; + const windowSize = useWindowSize(); + const canRenderTOC = + !hideTableOfContents && DocContent.toc && DocContent.toc.length > 0; + const renderTocDesktop = + canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr'); + return ( + <> + + +
+
+ +
+
+ {versionMetadata.badge && ( + + Version: {versionMetadata.label} + + )} + + {canRenderTOC && ( + + )} + +
+ +
info
+ +

+ In March 2023, Grafana Labs acquired Pyroscope, the company behind the eponymous open source continuous profiling project. + In September 2023, Grafana Pyroscope v1.0.0 was released. +

+

+ This documentation covers Pyroscope versions preceding v1.0.0. We're keeping it for the time being, but we recommend that you upgrade to Grafana Pyroscope v1.0.0 or higher and switch to the new Grafana Pyroscope Docs for most up-to-date documentation. +

+
+ {/* + Title can be declared inside md content or declared through frontmatter and added manually + To make both cases consistent, the added title is added under the same div.markdown block + See https://github.com/facebook/docusaurus/pull/4882#issuecomment-853021120 + */} + {shouldAddTitle && {title}} + +
+ + +
+ + +
+
+ {renderTocDesktop && ( +
+ +
+ )} +
+ + ); +} diff --git a/src/theme/DocItem/styles.module.css b/src/theme/DocItem/styles.module.css new file mode 100644 index 00000000..be0569c5 --- /dev/null +++ b/src/theme/DocItem/styles.module.css @@ -0,0 +1,22 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +.docItemContainer article > *:first-child, +.docItemContainer header + * { + margin-top: 0; +} + +@media only screen and (min-width: 997px) { + .docItemCol { + max-width: 75% !important; + } + + /* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */ + .tocMobile { + display: none; + } +}