#cloud-config # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. packages: - java - nc write_files: - path: /run/shardingsphere-proxy.service permissions: 0644 content: | [Unit] Description=ShardingSphere Proxy Service Requires=network.target After=network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/usr/local/shardingsphere-proxy/bin/start.sh ExecStop=/usr/local/shardingsphere-proxy/bin/stop.sh Restart=always RestartSec=3 StartLimitInterval=0 [Install] WantedBy=default.target %{ if element(version_elems, 0) <= 5 && element(version_elems, 1) < 3 } - path: /run/server.yaml permissions: 0644 content: | mode: type: Cluster repository: type: ZooKeeper props: namespace: governance_ds server-lists: ${zk_servers} retryIntervalMilliseconds: 500 timeToLiveSeconds: 60 maxRetries: 3 operationTimeoutMilliseconds: 500 rules: - !AUTHORITY users: - root@%:root - sharding@:sharding provider: type: ALL_PERMITTED - !TRANSACTION defaultType: XA providerType: Atomikos - !SQL_PARSER sqlCommentParseEnabled: true sqlStatementCache: initialCapacity: 2000 maximumSize: 65535 parseTreeCache: initialCapacity: 128 maximumSize: 1024 props: max-connections-size-per-query: 1 kernel-executor-size: 16 # Infinite by default. proxy-frontend-flush-threshold: 128 # The default value is 128. proxy-hint-enabled: false sql-show: false check-table-metadata-enabled: false # Proxy backend query fetch size. A larger value may increase the memory usage of ShardingSphere Proxy. # The default value is -1, which means set the minimum value for different JDBC drivers. proxy-backend-query-fetch-size: -1 proxy-frontend-executor-size: 0 # Proxy frontend executor size. The default value is 0, which means let Netty decide. # Available options of proxy backend executor suitable: OLAP(default), OLTP. The OLTP option may reduce time cost of writing packets to client, but it may increase the latency of SQL execution # and block other clients if client connections are more than `proxy-frontend-executor-size`, especially executing slow SQL. proxy-backend-executor-suitable: OLAP proxy-frontend-max-connections: 0 # Less than or equal to 0 means no limitation. # Available sql federation type: NONE (default), ORIGINAL, ADVANCED sql-federation-type: NONE # Available proxy backend driver type: JDBC (default), ExperimentalVertx proxy-backend-driver-type: JDBC proxy-mysql-default-version: 5.7.22 # In the absence of schema name, the default version will be used. proxy-default-port: 3307 # Proxy default port. proxy-netty-backlog: 1024 # Proxy netty backlog. %{ endif } %{ if element(version_elems, 0) >= 5 && element(version_elems, 1) > 2 } - path: /run/server.yaml permissions: 0644 content: | mode: type: Cluster repository: type: ZooKeeper props: namespace: governance_ds server-lists: ${zk_servers} retryIntervalMilliseconds: 500 timeToLiveSeconds: 60 maxRetries: 3 operationTimeoutMilliseconds: 500 %{ endif } - path: /run/install_shardingsphere_proxy.sh permissions: 0700 content: | echo Installing ShardingSphere v${version} wget -O /run/ss.tar.gz https://archive.apache.org/dist/shardingsphere/${version}/apache-shardingsphere-${version}-shardingsphere-proxy-bin.tar.gz mkdir -p /usr/local/shardingsphere-proxy tar xvf /run/ss.tar.gz --strip 1 -C /usr/local/shardingsphere-proxy if [ -f /run/server.yaml ]; then /bin/cp -avf /run/server.yaml /usr/local/shardingsphere-proxy/conf/server.yaml fi /bin/cp -avf /run/shardingsphere-proxy.service /usr/lib/systemd/system/shardingsphere-proxy.service systemctl daemon-reload systemctl enable shardingsphere-proxy systemctl start shardingsphere-proxy - path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json permissions: 0644 content: | { "agent": { "metrics_collection_interval": 10, "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log" }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "$${aws:AutoScalingGroupName}", "ImageId": "$${aws:ImageId}", "InstanceId": "$${aws:InstanceId}", "InstanceType": "$${aws:InstanceType}" }, "metrics_collected": { "cpu": { "measurement": [ "cpu_usage_system", "cpu_usage_idle", "cpu_usage_nice", "cpu_usage_guest", "cpu_usage_steal" ] }, "mem": { "measurement": [ "mem_used_percent" ] }, "net": { "resources": [ "eth0" ], "measurement": [ "bytes_sent", "bytes_recv", "drop_in", "drop_out" ] }, "netstat": { "measurement": [ "tcp_established", "tcp_syn_sent", "tcp_close" ], "metrics_collection_interval": 60 } } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/usr/local/shardingsphere-proxy/logs/*.log", "log_group_name": "shardingsphere-proxy.log", "timezone": "UTC", "timestamp_format": "%Y-%m-%d %H:%M:%S,%f" } ] } }, "force_flush_interval" : 15 } } - path: /run/install_cloudwatch.sh permissions: 0700 content: | #!/bin/bash echo Installing CloudWatch Agent rpm -Uvh https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm systemctl daemon-reload systemctl enable amazon-cloudwatch-agent systemctl start amazon-cloudwatch-agent runcmd: - /run/install_shardingsphere_proxy.sh - /run/install_cloudwatch.sh