{ "services": [ { "id": "simulator", "source_repository": "https://github.com/newrelic/demo-simulator.git", "deploy_script_path": "deploy/linux/roles", "port": 5000, "destinations": [ "simuhost" ], "files": [ { "destination_filepath": "engine/startScenario.json", "content": [ { "id": "scenarioConsumer", "rpm": "30", "steps": [ { "name": "header", "params": [ "x-demo-compute-pre-fulfillment", "[40,60]" ] }, { "name": "httpGet", "params": [ "[service:webportal]/api/inventory" ] } ] }, { "id": "scenarioConsumerMemory", "rpm": "0", "steps": [ { "name": "header", "params": [ "x-demo-compute-pre-fulfillment", "[40,60]" ] }, { "name": "header", "params": [ "x-demo-malloc-pre-login", "[20,400]" ] }, { "name": "httpGet", "params": [ "[service:webportal]/api/inventory" ] } ] }, { "id": "scenarioPortal", "rpm": "3", "steps": [ { "name": "browserStart", "params": [] }, { "name": "browserGoto", "params": [ "[service:webportal]" ] }, { "name": "sleepMs", "params": [ "1000" ] } ] }, { "id": "scenarioReporting", "rpm": "0", "maxCount": 10, "steps": [ { "name": "header", "params": [ "x-demo-compute-pre-fulfillment", "[30000,60000]" ] }, { "name": "httpGet", "params": [ "[service:warehouse]/api/inventory/9" ] } ] } ] }, { "destination_filepath": "engine/cronjob.json", "content": [ { "frequency": "0-59/5 * * * *", "job": "curl -i \"[service:simulator]/api/scenario/scenarioReporting/start?rpm=120\"" }, { "frequency": "1-59/5 * * * *", "job": "curl -i \"[service:simulator]/api/scenario/scenarioReporting/stop\"" }, { "frequency": "5,34 * * * *", "job": "/home/compute-user/simulator/createInfraEvent.sh connect >> createInfraEvent.log" }, { "frequency": "6 * * * *", "job": "/home/compute-user/simulator/createDeploymentMarker.sh 4.0.0 \"Add the V4 API\" >> createDeploymentMarker.log" }, { "frequency": "7,36 * * * *", "job": "/home/compute-user/simulator/createInfraEvent.sh disconnect >> createInfraEvent.log" }, { "frequency": "10 * * * *", "job": "curl -i \"[service:simulator]/api/scenario/scenarioConsumer/stop\"" }, { "frequency": "10 * * * *", "job": "curl -i \"[service:simulator]/api/scenario/scenarioConsumerMemory/start?rpm=30\"" }, { "frequency": "30 * * * *", "job": "curl -i \"[service:simulator]/api/scenario/scenarioConsumer/start?rpm=30\"" }, { "frequency": "30 * * * *", "job": "curl -i \"[service:simulator]/api/scenario/scenarioConsumerMemory/stop\"" }, { "frequency": "35 * * * *", "job": "/home/compute-user/simulator/createDeploymentMarker.sh 3.9.2 \"Roll back to latest stable release\" >> createDeploymentMarker.log" } ] }, { "destination_filepath": "engine/createDeploymentMarker.sh", "executable": true, "content": "https://raw.githubusercontent.com/newrelic/demo-catalog/main/catalog/telco_lite/scripts/createDeploymentMarker.sh" }, { "destination_filepath": "engine/createInfraEvent.sh", "executable": true, "content": "https://raw.githubusercontent.com/newrelic/demo-catalog/main/catalog/telco_lite/scripts/createInfraEvent.sh" } ] }, { "id": "webportal", "display_name": "Telco-Web Portal", "source_repository": "https://github.com/newrelic/demo-nodetron.git", "deploy_script_path": "deploy/linux/roles", "port": 6001, "relationships": [ "promo", "login", "inventory", "plan", "fulfillment" ], "destinations": [ "uihost" ] }, { "id": "warehouse", "display_name": "Telco-Warehouse Portal", "source_repository": "https://github.com/newrelic/demo-nodetron.git", "deploy_script_path": "deploy/linux/roles", "port": 6002, "relationships": [ "promo", "login", "inventory", "plan", "fulfillment" ], "destinations": [ "uihost" ] }, { "id": "login", "display_name": "Telco-Login Service", "source_repository": "https://github.com/newrelic/demo-javatron.git", "deploy_script_path": "deploy/linux/roles", "port": 7001, "params": { "delay_start_ms": 300000 }, "destinations": [ "authhost" ], "files": [ { "destination_filepath": "javatron/cronjob.json", "content": [ { "frequency": "6,35 * * * *", "job": "sudo supervisorctl restart login" } ] } ] }, { "id": "promo", "display_name": "Telco-Promo Service", "source_repository": "https://github.com/newrelic/demo-pythontron.git", "deploy_script_path": "deploy/linux/roles", "port": 8001, "destinations": [ "backendhost" ] }, { "id": "inventory", "display_name": "Telco-Inventory Service", "source_repository": "https://github.com/newrelic/demo-pythontron.git", "deploy_script_path": "deploy/linux/roles", "port": 8003, "destinations": [ "backendhost" ] }, { "id": "plan", "display_name": "Telco-Plan Service", "source_repository": "https://github.com/newrelic/demo-pythontron.git", "deploy_script_path": "deploy/linux/roles", "port": 8004, "destinations": [ "backendhost" ] }, { "id": "fulfillment", "display_name": "Telco-Fulfillment Service", "source_repository": "https://github.com/newrelic/demo-pythontron.git", "deploy_script_path": "deploy/linux/roles", "port": 8005, "relationships": [ "billing" ], "destinations": [ "backendhost" ] }, { "id": "billing", "display_name": "Telco-Billing Service", "source_repository": "https://github.com/newrelic/demo-javatron.git", "deploy_script_path": "deploy/linux/roles", "port": 9001, "destinations": [ "reportinghost" ] }, { "id": "fluentd", "destinations": [ "uihost", "backendhost", "reportinghost", "authhost" ], "source_repository": "https://github.com/newrelic/demo-fluentd.git", "deploy_script_path": "deploy/linux/roles", "port": 9999 } ], "global_tags": { "dxOwningTeam": "DemoX", "dxEnvironment": "development", "dxDepartment": "Area51", "dxProduct": "AcmeTelcoLite" }, "resources": [ { "id": "simuhost", "provider": "gcp", "type": "compute", "size": "e2-micro" }, { "id": "uihost", "display_name": "Telco-UI-host", "provider": "gcp", "type": "compute", "size": "e2-small" }, { "id": "authhost", "display_name": "Telco-Authentication-host", "provider": "gcp", "type": "compute", "size": "e2-small" }, { "id": "backendhost", "display_name": "Telco-Backend-host", "provider": "gcp", "type": "compute", "size": "n1-standard-1" }, { "id": "reportinghost", "display_name": "Telco-Reporting-host", "provider": "gcp", "type": "compute", "size": "e2-small" } ], "instrumentations": { "resources": [ { "id": "nr_infra", "resource_ids": [ "uihost", "authhost", "backendhost", "reportinghost" ], "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/linux/roles", "version": "1.12.4" } ], "services": [ { "id": "nr_node_agent", "service_ids": [ "webportal", "warehouse" ], "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/node/linux/roles", "version": "6.13.0" }, { "id": "nr_python_agent", "service_ids": [ "promo", "inventory", "plan", "fulfillment" ], "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/python/linux/roles", "version": "5.18.0.148" }, { "id": "nr_java_agent", "service_ids": [ "billing", "login" ], "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/java/linux/tomcat/roles", "version": "6.0.0" }, { "id": "nr_logging_in_context", "service_ids": [ "webportal", "promo", "inventory", "plan", "fulfillment", "billing", "login", "warehouse" ], "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/logging_in_context/roles" }, { "id": "nr_alert_service", "service_ids": [ "webportal", "promo", "inventory", "plan", "fulfillment", "warehouse", "billing", "login" ], "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/alerts/restapi/roles", "params": { "alert_duration": 5, "alert_response_time_threshold": 5, "alert_throughput_threshold": 5, "alert_error_percentage_threshold": 10, "alert_cpu_threshold": 75 } } ], "global": [ { "id": "nr_golden_dashboard", "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/dashboards/golden/restapi/roles" }, { "id": "nr_golden_workload", "provider": "newrelic", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/workloads/golden/restapi/roles" }, { "id": "nr_gcp_integration", "provider": "newrelic", "provider_credential": "gcp", "source_repository": "https://github.com/newrelic/demo-newrelic-instrumentation.git", "deploy_script_path": "deploy/cloud_providers/gcp/restapi/roles" } ] } }