Skip to content

Commit b684adc

Browse files
authored
Merge pull request #2 from rlunar/docs/readme
Docs/readme
2 parents 2218b0f + 6775a0d commit b684adc

File tree

5 files changed

+380
-37
lines changed

5 files changed

+380
-37
lines changed

.gitignore

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,161 @@
11
frontend/public/aws-exports.json
22
server/aws-exports.json
3+
4+
# General
5+
.DS_Store
6+
.AppleDouble
7+
.LSOverride
8+
9+
# Icon must end with two \r
10+
Icon
11+
12+
13+
# Thumbnails
14+
._*
15+
16+
# Files that might appear in the root of a volume
17+
.DocumentRevisions-V100
18+
.fseventsd
19+
.Spotlight-V100
20+
.TemporaryItems
21+
.Trashes
22+
.VolumeIcon.icns
23+
.com.apple.timemachine.donotpresent
24+
25+
# Directories potentially created on remote AFP share
26+
.AppleDB
27+
.AppleDesktop
28+
Network Trash Folder
29+
Temporary Items
30+
.apdisk
31+
32+
# Logs
33+
logs
34+
*.log
35+
npm-debug.log*
36+
yarn-debug.log*
37+
yarn-error.log*
38+
lerna-debug.log*
39+
.pnpm-debug.log*
40+
41+
# Diagnostic reports (https://nodejs.org/api/report.html)
42+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
43+
44+
# Runtime data
45+
pids
46+
*.pid
47+
*.seed
48+
*.pid.lock
49+
50+
# Directory for instrumented libs generated by jscoverage/JSCover
51+
lib-cov
52+
53+
# Coverage directory used by tools like istanbul
54+
coverage
55+
*.lcov
56+
57+
# nyc test coverage
58+
.nyc_output
59+
60+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
61+
.grunt
62+
63+
# Bower dependency directory (https://bower.io/)
64+
bower_components
65+
66+
# node-waf configuration
67+
.lock-wscript
68+
69+
# Compiled binary addons (https://nodejs.org/api/addons.html)
70+
build/Release
71+
72+
# Dependency directories
73+
node_modules/
74+
jspm_packages/
75+
76+
# Snowpack dependency directory (https://snowpack.dev/)
77+
web_modules/
78+
79+
# TypeScript cache
80+
*.tsbuildinfo
81+
82+
# Optional npm cache directory
83+
.npm
84+
85+
# Optional eslint cache
86+
.eslintcache
87+
88+
# Optional stylelint cache
89+
.stylelintcache
90+
91+
# Microbundle cache
92+
.rpt2_cache/
93+
.rts2_cache_cjs/
94+
.rts2_cache_es/
95+
.rts2_cache_umd/
96+
97+
# Optional REPL history
98+
.node_repl_history
99+
100+
# Output of 'npm pack'
101+
*.tgz
102+
103+
# Yarn Integrity file
104+
.yarn-integrity
105+
106+
# dotenv environment variable files
107+
.env
108+
.env.development.local
109+
.env.test.local
110+
.env.production.local
111+
.env.local
112+
113+
# parcel-bundler cache (https://parceljs.org/)
114+
.cache
115+
.parcel-cache
116+
117+
# Next.js build output
118+
.next
119+
out
120+
121+
# Nuxt.js build / generate output
122+
.nuxt
123+
dist
124+
125+
# Gatsby files
126+
.cache/
127+
# Comment in the public line in if your project uses Gatsby and not Next.js
128+
# https://nextjs.org/blog/next-9-1#public-directory-support
129+
# public
130+
131+
# vuepress build output
132+
.vuepress/dist
133+
134+
# vuepress v2.x temp and cache directory
135+
.temp
136+
.cache
137+
138+
# Docusaurus cache and generated files
139+
.docusaurus
140+
141+
# Serverless directories
142+
.serverless/
143+
144+
# FuseBox cache
145+
.fusebox/
146+
147+
# DynamoDB Local files
148+
.dynamodb/
149+
150+
# TernJS port file
151+
.tern-port
152+
153+
# Stores VSCode versions used for testing VSCode extensions
154+
.vscode-test
155+
156+
# yarn v2
157+
.yarn/cache
158+
.yarn/unplugged
159+
.yarn/build-state.yml
160+
.yarn/install-state.gz
161+
.pnp.*

README.md

Lines changed: 60 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,60 @@
33
> **Disclaimer:** The sample code; software libraries; command line tools; proofs of concept; templates; or other related technology (including any of the foregoing that are provided by our personnel) is provided to you as AWS Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You are responsible for testing, securing, and optimizing the AWS Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances, using Amazon CloudWatch or Amazon Cognito.
44
55

6+
67
## What is DBTop Monitoring ?
78

89
DBTop Monitoring is evolution of [RDSTop Monitoring Solution](https://github.com/aws-samples/rds-top-monitoring) initiative.
910

10-
DBTop Monitoring is lightweight application to perform realtime monitoring for AWS Database Resources.
11+
DBTop Monitoring is lightweight application to perform real-time monitoring for AWS Database Resources.
1112
Based on same simplicity concept of Unix top utility, provide quick and fast view of database performance, just all in one screen.
1213

13-
1414
<img width="1089" alt="image" src="./images/image01.png">
1515

1616

17-
## How looks like DBTop Monitoring ?
17+
18+
## How does DBTop Monitoring look like?
1819

1920
<img width="1089" alt="image" src="./images/image02.png">
2021

2122
<img width="1089" alt="image" src="./images/image03.png">
2223

2324
<img width="1089" alt="image" src="./images/image04.png">
2425

26+
27+
### [Visit the YouTube channel for videos](https://www.youtube.com/@DBTopMonitoringSolution)
28+
29+
30+
2531
## How it works?
2632

2733
<img width="1089" alt="image" src="./images/image05.png">
2834

2935

3036

31-
3237
## Database engine support
3338

3439
DBTop Monitoring Solution currently supports following database engines:
3540

36-
- AWS RDS for MySQL
37-
- AWS RDS for PostgreSQL
38-
- AWS RDS for MariaDB
39-
- AWS RDS for Oracle
40-
- AWS RDS for SQLServer
41-
- Amazon Aurora Instance (MySQL-Compatible Edition)
42-
- Amazon Aurora Instance (PostgreSQL-Compatible Edition)
43-
- Amazon ElastiCache for Redis
44-
- Amazon MemoryDB for Redis
45-
- Amazon Aurora Clusters (MySQL-Compatible Edition)
46-
- Amazon Aurora Clusters (PostgreSQL-Compatible Edition)
47-
- Amazon DocumentDB Clusters
41+
- [Amazon Relational Database Service (RDS)](https://aws.amazon.com/rds/)
42+
- [Amazon RDS for MySQL](https://aws.amazon.com/rds/mysql/)
43+
- [Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/)
44+
- [Amazon RDS for MariaDB](https://aws.amazon.com/rds/mariadb/)
45+
- [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/)
46+
- [Amazon RDS for SQLServer](https://aws.amazon.com/rds/sqlserver/)
47+
- [Amazon Aurora Instance (MySQL-Compatible Edition)](https://aws.amazon.com/rds/aurora/)
48+
- [Amazon Aurora Instance (MySQL-Compatible Edition)](https://aws.amazon.com/rds/aurora/)
49+
- [Amazon Aurora Instance (PostgreSQL-Compatible Edition)](https://aws.amazon.com/rds/aurora/)
50+
- [Amazon Aurora Clusters (MySQL-Compatible Edition)](https://aws.amazon.com/rds/aurora/)
51+
- [Amazon Aurora Clusters (PostgreSQL-Compatible Edition)](https://aws.amazon.com/rds/aurora/)
52+
- [Amazon In-Memory Databases](https://aws.amazon.com/elasticache/)
53+
- [Amazon ElastiCache for Redis](https://aws.amazon.com/elasticache/redis/)
54+
- [Amazon MemoryDB for Redis](https://aws.amazon.com/memorydb/)
55+
- [Amazon DocumentDB (with MongoDB compatibility)](https://aws.amazon.com/documentdb/)
4856

4957
Additional expanded support coming later to :
5058

51-
- Amazon OpenSearch
52-
53-
59+
- [Amazon OpenSearch Service](https://aws.amazon.com/opensearch-service/)
5460

5561

5662

@@ -61,11 +67,13 @@ Additional expanded support coming later to :
6167
- **Backend.** NodeJS API Component to gather performance information from database engines, AWS CloudWatch and Enhanced Monitoring.
6268

6369

70+
6471
## Architecture
6572

6673
<img width="1023" alt="image" src="./images/image06.png">
6774

6875

76+
6977
## Use cases
7078

7179
- **Monitor instance performance.**
@@ -81,18 +89,25 @@ Additional expanded support coming later to :
8189

8290
## Solution Requirements
8391

84-
#### Amazon RDS Enhanced Monitoring
92+
#### [Amazon RDS](https://aws.amazon.com/rds/) Enhanced Monitoring
8593

86-
Amazon RDS provides metrics in real time for the operating system (OS) that your DB instance runs on. DBTop Monitoring solution integrate metrics from Enhanced Monitoring and it has to be enabled.
87-
Follow procedure below to turn on Enhanced Monitoring.
94+
[Amazon RDS](https://aws.amazon.com/rds/) provides metrics in real time for the operating system (OS) that your DB instance runs on. DBTop Monitoring solution integrate metrics from Enhanced Monitoring and it has to be enabled. Follow procedure below to turn on Enhanced Monitoring.
8895

89-
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html
96+
[Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html)
9097

9198

9299
#### VPC Network Access to AWS Database Instances
93100

94101
DBTop Monitoring Solution needs to access privately AWS Database resources, grant inboud access for security groups used by database resources.
95102

103+
_First, you need to take a note of the Cloudformation resources created by the stack_
104+
105+
<img width="1023" alt="Cloudformation Security Group Id" src="./images/image07.png">
106+
107+
108+
_Second, you need to edit the Security Group that allows access to your Database resources, in this case to ElastiCache_
109+
110+
<img width="1023" alt="Edit Security Group Id to Allow Redis" src="./images/image08.png">
96111

97112

98113
## Resource Usage and Cost
@@ -111,29 +126,30 @@ DBTop Monitoring Solution will use following resources:
111126

112127
## Solution Deployment
113128

114-
115-
116129
> **Time to deploy:** Approximately 10 minutes.
117130
118131

119132
### Create database monitoring users
120133

121134
Database credentials are needed to connect to the database engine and gather real-time metrics, use following statements to create the monitoring users.
122135

123-
#### MySQL
124-
```
136+
137+
#### [Amazon RDS for MySQL](https://aws.amazon.com/rds/mysql/)
138+
```sql
125139
CREATE USER 'monitor'@'%' IDENTIFIED BY '<PASSWORD>';
126140
GRANT PROCESS ON *.* TO 'monitor'@'%' ;
127141
```
128142

129-
#### PostgreSQL
130-
```
143+
144+
#### [Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/)
145+
```sql
131146
CREATE USER monitor WITH PASSWORD '<PASSWORD>';
132147
GRANT pg_read_all_stats TO monitor;
133148
```
134149

135-
#### MS SQLServer
136-
```
150+
151+
#### [Amazon RDS for SQLServer](https://aws.amazon.com/rds/sqlserver/)
152+
```sql
137153
USE [master]
138154
GO
139155
CREATE LOGIN [monitor] WITH PASSWORD=N'<PASSWORD>', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
@@ -146,14 +162,15 @@ GRANT VIEW SERVER STATE TO [monitor]
146162
GO
147163
```
148164

149-
#### Oracle
150-
```
165+
166+
#### [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/)
167+
```sql
151168
CREATE USER monitor IDENTIFIED BY '<PASSWORD>';
152169
GRANT CREATE SESSION,SELECT ANY DICTIONARY TO monitor;
153170
```
154171

155172

156-
#### Amazon DocumentDB
173+
#### [Amazon DocumentDB (with MongoDB compatibility)](https://aws.amazon.com/documentdb/)
157174
```
158175
db.createUser(
159176
{
@@ -169,16 +186,16 @@ db.createUser(
169186
Follow the step-by-step instructions to configure and deploy the DBTop Monitoring Solution into your account.
170187

171188
1. Make sure you have sign in AWS Console already.
172-
2. Download AWS Cloudformation Template (DBMonitoringSolution.template) located into conf folder.
189+
2. Download AWS Cloudformation Template ([DBMonitoringSolution.template](https://raw.githubusercontent.com/aws-samples/db-top-monitoring/main/conf/DBTopMonitoringSolution.template)) located into conf folder.
173190
3. [**Open AWS CloudFormation Console**](https://console.aws.amazon.com/cloudformation/home#/stacks/create/template?stackName=DBTopMonitoringSolution)
174-
4. Create an stack using Cloudformation template (DBMonitoringSolution.template) already downloaded on step 2.
191+
4. Create an stack using Cloudformation template ([DBMonitoringSolution.template](/conf/DBMonitoringSolution.template)) already downloaded on step 2.
175192
5. Input **Stack name** parameter.
176193
6. Acknowledge **Application Updates - Disclaimer** parameter.
177194
7. Input **Username** parameter, this username will be used to access the application. An email will be sent with temporary password from AWS Cognito Service.
178195
8. Input **AWS Linux AMI** parameter, this parameter specify AWS AMI to build App EC2 Server. Keep default value.
179196
9. Select **Instance Type** parameter, indicate what instance size is needed.
180197
10. Select **VPC Name** parameter, indicate VPC to be used to deploy application server.
181-
11. Select **Subnet Name** parameter, indicate subnet to be used to deploy application server, this subnet needs to have outbound internet access to reach AWS APIs. Also application server needs to be able to reach AWS Database Resources, add appropiate inboud rules on AWS RDS security groups to allow network connections.
198+
11. Select **Subnet Name** parameter, indicate subnet to be used to deploy application server, this subnet needs to have outbound internet access to reach AWS APIs. Also application server needs to be able to reach AWS Database Resources, add appropiate inboud rules on Amazon RDS security groups to allow network connections.
182199
12. Select **Public IP Address** parameter, the deployment will assign private IP Address by default to access the application, you can assign Public IP Address to access the application in case you need it, Select (true) to assign Public IP Address.
183200
13. Input **CIDR** parameter, specify CIDR inbound access rule, this will grant network access for the application.
184201
14. Click **Next**, Click **Next**, select **acknowledge that AWS CloudFormation might create IAM resources with custom names**. and Click **Submit**.
@@ -191,8 +208,14 @@ CA-signed certificate that not only encrypts, but also publicly authenticates yo
191208

192209

193210

211+
## Security
212+
213+
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
214+
194215

195216

217+
## License
196218

219+
This library is licensed under the MIT-0 License. See the [LICENSE](LICENSE.txt) file.
197220

198221

0 commit comments

Comments
 (0)