315 |
Oopsie!
316 |
There seems to be an error on our side.
317 |
We'll look into that and try to fix it as soon as possible.
318 |
319 |
320 |
321 | ```
322 |
323 | You'll also need to upload an image called `wedding-background.jpg`. You can use any image you want as long as it has that name, but a [small example image](https://github.com/CarlosIA12/backstage-plugins-tutorial/blob/main/wedding-background.jpg) is provided in the repository.
324 |
325 | With all these pieces in place, you can navigate to the **Properties** tab of the S3 bucket hosting the website and scroll down until you find the URL for your website:
326 |
327 | 
328 |
329 | That URL should take you to your demo app. The rest of the article will use all the resources created in this section for the integrations.
330 |
331 | ### Creating a Datadog Account for Resource Monitoring
332 |
333 | You'll use [Datadog](https://www.datadoghq.com/) to monitor the app that you just deployed. Go to the [Datadog sign-up page](https://us5.datadoghq.com/signup) and provide all the necessary information to create a new account. Note that you do not need to set up an agent for this tutorial.
334 |
335 | First, create a new IAM user in your AWS account [using this resource](https://docs.datadoghq.com/getting_started/integrations/aws/). Then, go to the **Integrations** page in Datadog, select **Amazon Web Services**, and select **Add New AWS Account(s)**. On the **Add a Single AWS Account** tab, select **Automatically using CloudFormation**. Choose an API key, opt to send AWS logs to Datadog, and don't enable Cloud Security Posture Management:
336 |
337 | 
338 |
339 | Hit **Launch CloudFormation Template**. You'll be redirected to your AWS CloudFormation page. Leave any data that was automatically filled in, confirm the checkboxes asking for acknowledgement of resource creation, and click **Create stack**:
340 |
341 | 
342 |
343 | Once the stack is created, you'll have a new integration with your account. If you navigate back to your Datadog account, you'll now see the AWS integration:
344 |
345 | 
346 |
347 | You now need to create a new dashboard and include the services relevant to the app. In this case, that means AWS Lambda and Amazon S3. On your Datadog home page, go to the left panel and click **Dashboards**. Then, in the top-right corner, select **New Dashboard** to open a window where you can name your dashboard:
348 |
349 | 
350 |
351 | After clicking **New Dashboard**, you'll be presented with an empty area. To build the dashboard, click the empty card that reads either **Click a tray item to add it here** or **Add Widgets or Powerpacks**, then drag a **Query Value** widget to the area.
352 |
353 | 
354 |
355 | After selecting the metric you are interested in, click **Save**. For this tutorial, the dashboard includes two Query Value widgets for the values `aws.lambda.invocations` and `aws.s3.bucket_size_bytes`.
356 |
357 | 
358 |
359 | When you are happy with the metrics and the look of your dashboard, click the **Share** button at the top of the dashboard, and then **Generate public URL**:
360 |
361 | 
362 |
363 | Set it up as a public dashboard, and save the dashboard URL for later.
364 |
365 | ### Integrating Backstage with the GitHub Plugin
366 |
367 | You'll now integrate Backstage with a plugin to [monitor and visualize pull requests](https://roadie.io/backstage/plugins/github-pull-requests/) to help you manage your project easier. You can learn how to set up plugins for static code analysis in the [next installment](__link_to_security_article__) of this series.
368 |
369 | First, you need to install the plugin by running this command at the root of your project:
370 |
371 | ```bash
372 | yarn add --cwd packages/app @roadiehq/backstage-plugin-github-pull-requests
373 | ```
374 |
375 | Go to the catalog code at `packages/app/src/components/catalog/EntityPage.tsx` and find `serviceEntityPage` and `overviewContent`. Add the following code alongside the other routes and cards:
376 |
377 | ```typescript
378 | // ... other imports
379 | import { EntityGithubPullRequestsOverviewCard } from '@roadiehq/backstage-plugin-github-pull-requests';
380 | // ... rest of the code
381 |
382 | const overviewContent = (
383 |