From d4d0d7242d8bb0b2e43a512fb30961dfdab7d7af Mon Sep 17 00:00:00 2001 From: jcountsNR <94138069+jcountsNR@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:12:18 -0800 Subject: [PATCH 1/8] chore: update akamai quickstart --- .../datastream2-5xx-errors.yml | 2 +- dashboards/datastream2/datastream2.json | 8 ++--- data-sources/akamai/config.yml | 6 ++-- .../datastream2-akamai/install.yml | 8 ++--- quickstarts/datastream2-akamai/config.yml | 34 +++++++++---------- 5 files changed, 26 insertions(+), 32 deletions(-) diff --git a/alert-policies/datastream2-akamai/datastream2-5xx-errors.yml b/alert-policies/datastream2-akamai/datastream2-5xx-errors.yml index 7cfa35d154..5c350e0044 100644 --- a/alert-policies/datastream2-akamai/datastream2-5xx-errors.yml +++ b/alert-policies/datastream2-akamai/datastream2-5xx-errors.yml @@ -1,5 +1,5 @@ # Name of the alert -name: Datastream2 - 5xx error greater than 1% +name: DataStream 2 - 5xx error greater than 1% # Description and details description: |+ diff --git a/dashboards/datastream2/datastream2.json b/dashboards/datastream2/datastream2.json index fca8449aac..c110b9bcdc 100644 --- a/dashboards/datastream2/datastream2.json +++ b/dashboards/datastream2/datastream2.json @@ -1,5 +1,5 @@ { - "name": "Akamai Datastream2", + "name": "Akamai DataStream 2", "description": null, "pages": [ { @@ -19,7 +19,7 @@ "id": "viz.markdown" }, "rawConfiguration": { - "text": "## Akamai DataStream2 Overview\n\n![Add Images](https://www.akamai.com/site/en/images/logo/akamai-logo1.svg?canvas=1200:630&width=1200&height=430&fit=bounds&bg-color=FFFFFF)\n\n#### [DataStream](https://techdocs.akamai.com/datastream2/docs) captures performance and security logs from your delivery properties and streams them in near real-time to provide complete monitoring." + "text": "## Akamai DataStream 2 Overview\n\n![Add Images](https://www.akamai.com/site/en/images/logo/akamai-logo1.svg?canvas=1200:630&width=1200&height=430&fit=bounds&bg-color=FFFFFF)\n\n#### [DataStream](https://techdocs.akamai.com/datastream2/docs) captures performance and security logs from your delivery properties and streams them in near real-time to provide complete monitoring." } }, { @@ -491,7 +491,7 @@ "id": "viz.markdown" }, "rawConfiguration": { - "text": "## Akamai Datastream2 Client Information\n![Add Images](https://www.akamai.com/site/en/images/logo/akamai-logo1.svg?canvas=1200:630&width=1200&height=430&fit=bounds&bg-color=FFFFFF)" + "text": "## Akamai DataStream 2 Client Information\n![Add Images](https://www.akamai.com/site/en/images/logo/akamai-logo1.svg?canvas=1200:630&width=1200&height=430&fit=bounds&bg-color=FFFFFF)" } }, { @@ -1019,7 +1019,7 @@ "id": "viz.markdown" }, "rawConfiguration": { - "text": "## Akamai Datastream2 Performance\n![Add Images](https://www.akamai.com/site/en/images/logo/akamai-logo1.svg?canvas=1200:630&width=1200&height=430&fit=bounds&bg-color=FFFFFF)" + "text": "## Akamai DataStream 2 Performance\n![Add Images](https://www.akamai.com/site/en/images/logo/akamai-logo1.svg?canvas=1200:630&width=1200&height=430&fit=bounds&bg-color=FFFFFF)" } }, { diff --git a/data-sources/akamai/config.yml b/data-sources/akamai/config.yml index 174a838750..f1f0c74123 100644 --- a/data-sources/akamai/config.yml +++ b/data-sources/akamai/config.yml @@ -1,9 +1,7 @@ id: akamai -displayName: Akamai Datastream2 +displayName: Akamai DataStream 2 description: | - DataStream2 captures performance and security logs from your delivery properties and streams them in near real-time to provide complete monitoring. - - DataStream 2 lets you stream logs to third-party destinations including NewRelic for storage and analysis. + This integration with DataStream 2 captures performance and security logs from your delivery properties to monitor in New Relic. icon: logo.png install: primary: diff --git a/install/third-party/datastream2-akamai/install.yml b/install/third-party/datastream2-akamai/install.yml index b718938089..5336de932a 100644 --- a/install/third-party/datastream2-akamai/install.yml +++ b/install/third-party/datastream2-akamai/install.yml @@ -1,10 +1,8 @@ id: third-party-datastream2-akamai -name: Datastream2 -title: Akamai Datastream2 +name: DataStream 2 +title: Akamai DataStream 2 description: - DataStream2 captures performance and security logs from your delivery properties and streams them in near real-time to provide complete monitoring. - - DataStream 2 lets you stream logs to third-party destinations including NewRelic for storage and analysis. + DataStream 2 captures performance and security logs from your delivery properties and streams them in real-time to provide complete monitoring. target: type: integration diff --git a/quickstarts/datastream2-akamai/config.yml b/quickstarts/datastream2-akamai/config.yml index 6476313d24..28033c35b4 100644 --- a/quickstarts/datastream2-akamai/config.yml +++ b/quickstarts/datastream2-akamai/config.yml @@ -2,33 +2,31 @@ id: cb995039-39d8-44d9-97c3-58174a1337f2 slug: datastream2 title: Akamai DataStream 2 description: |+ - ## Akamai Quickstart + ## Akamai and DataStream 2 - Akamai Technologies is a leading content delivery network (CDN), cybersecurity, and cloud service provider. + Akamai Technologies is a leading content delivery network (CDN), cybersecurity, and cloud service provider. - ### DataStream 2 + [DataStream 2](https://techdocs.akamai.com/datastream2/docs) captures performance and security logs from your delivery properties and streams them in near real-time to provide complete monitoring. - DataStream 2 captures performance and security logs from your delivery properties and streams them in near real-time to provide complete monitoring. + ### About this integration - For more information please go to https://techdocs.akamai.com/datastream2/docs - - ### DataStream 2 quickstart - - The Akamai DataStream 2 quickstart enables you to monitor your performance and security logs in real time. Here are a few of the monitoring tools available with this quickstart: - - HTTP status code distribution - - Error rate - - Log ingest - - Cache hit retio - - TLS overhead time ranges - - Overhead byte ranges - - HTTP protocol distribution + This integration utilizes the data captured and and stream via DataStream 2 to visualize and monitor your CDN performance and security logs in real time. + Included with the data + - HTTP status code distribution + - Error rate + - Log ingest + - Cache hit retio + - TLS overhead time ranges + - Overhead byte ranges + - HTTP protocol distribution summary: | - The DataStream 2 quickstart will enable you to monitor and analyze your Akamai performance and security logs. + Monitor your Akamai performance and security logs with the New Relic Datastream 2 integration. level: Community authors: - Gayatri S (Akamai Technologies) + - New Relic keywords: - akamai - logs @@ -47,7 +45,7 @@ dataSourceIds: documentation: - name: Installation docs url: https://techdocs.akamai.com/datastream2/docs/stream-new-relic - description: Configure Akamai Datastream2 streaming logs to New Relic + description: Configure Akamai log streaming to New Relic icon: logo.png website: https://www.akamai.com/ dashboards: From 6051581643894c2dd4448345c15abf66419fcd52 Mon Sep 17 00:00:00 2001 From: jcountsNR <94138069+jcountsNR@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:46:04 -0800 Subject: [PATCH 2/8] chore: delete jumpstart quickstart --- dashboards/jumpstart/Jumpstart.json | 208 ---------------------- dashboards/jumpstart/Jumpstart01.png | Bin 681137 -> 0 bytes data-sources/jumpstart/config.yml | 9 - data-sources/jumpstart/logo.svg | 13 -- install/third-party/jumpstart/install.yml | 13 -- quickstarts/jumpstart/config.yml | 26 --- quickstarts/jumpstart/logo.svg | 13 -- 7 files changed, 282 deletions(-) delete mode 100644 dashboards/jumpstart/Jumpstart.json delete mode 100644 dashboards/jumpstart/Jumpstart01.png delete mode 100644 data-sources/jumpstart/config.yml delete mode 100644 data-sources/jumpstart/logo.svg delete mode 100644 install/third-party/jumpstart/install.yml delete mode 100644 quickstarts/jumpstart/config.yml delete mode 100644 quickstarts/jumpstart/logo.svg diff --git a/dashboards/jumpstart/Jumpstart.json b/dashboards/jumpstart/Jumpstart.json deleted file mode 100644 index be150180fe..0000000000 --- a/dashboards/jumpstart/Jumpstart.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "name": "Partner I/O quickstart", - "description": "", - "pages": [ - { - "name": "Jumpstart", - "description": null, - "widgets": [ - { - "visualization": { - "id": "viz.markdown" - }, - "layout": { - "column": 1, - "row": 1, - "height": 3, - "width": 3 - }, - "title": "", - "rawConfiguration": { - "text": "\n ![NR Logo](https://ravennaareachamber.com/wp-content/uploads/2017/03/your-company-lsiting.png)" - }, - "linkedEntityGuids": null - }, - { - "visualization": { - "id": "viz.markdown" - }, - "layout": { - "column": 4, - "row": 1, - "height": 1, - "width": 2 - }, - "title": "", - "rawConfiguration": { - "text": "# Here are some example widgets to get you started!" - }, - "linkedEntityGuids": null - }, - { - "visualization": { - "id": "viz.pie" - }, - "layout": { - "column": 6, - "row": 1, - "height": 3, - "width": 3 - }, - "title": "Example Pie Chart", - "rawConfiguration": { - "facet": { - "showOtherSeries": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "FROM Public_APICall select count(*) facet http.url since 1 hour ago" - } - ] - }, - "linkedEntityGuids": null - }, - { - "visualization": { - "id": "viz.table" - }, - "layout": { - "column": 9, - "row": 1, - "height": 5, - "width": 4 - }, - "title": "Example Table", - "rawConfiguration": { - "dataFormatters": [], - "facet": { - "showOtherSeries": false - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT api,http.method,duration,http.url FROM Public_APICall WHERE duration >1.5 SINCE 1 day ago " - } - ] - }, - "linkedEntityGuids": null - }, - { - "visualization": { - "id": "viz.billboard" - }, - "layout": { - "column": 4, - "row": 2, - "height": 2, - "width": 2 - }, - "title": "Example Billboard chart", - "rawConfiguration": { - "dataFormatters": [], - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT count(*) FROM Public_APICall facet api since 30 minutes ago WHERE api ='newrelic.com' " - } - ], - "thresholds": [] - }, - "linkedEntityGuids": null - }, - { - "visualization": { - "id": "viz.markdown" - }, - "layout": { - "column": 1, - "row": 4, - "height": 5, - "width": 5 - }, - "title": "", - "rawConfiguration": { - "text": "# Steps to Create your own I/O Quickstart:\n\n**1** - Integrate your data with New Relic\n\n**2** - Fork / Clone the [Repo](https://github.com/newrelic/newrelic-quickstarts) to your local machine\n\n**3** - Copy the '_Template' folder into the quickstarts folder, and name it\n\n**4** - Create a dashboard from your data integration with your NR Account in [NR1](https://one.newrelic.com/)\n\n**5** - Import your dashboard to your cloned GIT repo by copying JSON of the dashboard you created into the .JSON file in the Dashboards folder from your recently created quickstart folder\n\n**6** - Update your Repo with a dashboard screenshot, make any required updates in the config.yml file (name, description, etc.), and update the logo file to the logo/icon you want for your quickstart\n\n**7** - Merge your changes to your cloned GIT repo, and create a pull request to the parent Repo" - }, - "linkedEntityGuids": null - }, - { - "visualization": { - "id": "viz.bar" - }, - "layout": { - "column": 6, - "row": 4, - "height": 5, - "width": 3 - }, - "title": "Example Bar Chart", - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "FROM Public_APICall select average(duration) facet api SINCE 1 day ago" - } - ] - }, - "linkedEntityGuids": null - }, - { - "visualization": { - "id": "viz.line" - }, - "layout": { - "column": 9, - "row": 6, - "height": 3, - "width": 4 - }, - "title": "Example Timeseries Chart", - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "FROM Public_APICall SELECT percentile(duration, 50) FACET http.url TIMESERIES " - } - ], - "yAxisLeft": { - "zero": true - } - }, - "linkedEntityGuids": null - } - ] - }, - { - "name": "Resources", - "description": null, - "widgets": [ - { - "visualization": { - "id": "viz.markdown" - }, - "layout": { - "column": 1, - "row": 1, - "height": 3, - "width": 4 - }, - "title": "", - "rawConfiguration": { - "text": "## Welcome to I|O quickstart!\n\nGet Started with these helpful links\n* [I/O Overview](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/get-started/new-relic-quickstarts-overview/)\n* [Quickstart Repo](https://github.com/newrelic/newrelic-quickstarts)\n* [I/O quickstart Catalog](https://developer.newrelic.com/instant-observability/)\n* [API Wiki](https://developer.newrelic.com/try-our-apis/)\n* [I/O Blogpost](https://newrelic.com/blog/nerdlog/instant-observability-quickstarts)\n* [I/O How to Install your first quickstart Video](https://youtu.be/sFt1Tx5qPRU)\n" - }, - "linkedEntityGuids": null - } - ] - } - ] -} \ No newline at end of file diff --git a/dashboards/jumpstart/Jumpstart01.png b/dashboards/jumpstart/Jumpstart01.png deleted file mode 100644 index 12e30ca47c919f9d919900aa8ec10bddafd6dfaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681137 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
  • P*A`kBL10G_CoNolOAcd8>T0zKqzkFo1p=X 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