Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ services:
- DD_TRACE_ANALYTICS_ENABLED=true
- DD_PROFILING_ENABLED=true
- DD_APPSEC_ENABLED=true
- DD_VERSION=7
- DD_ENV=dev
build:
context: ./services/ads/python
command: flask run --port=${ADS_PORT} --host=0.0.0.0 # If using any other port besides the default 9292, overriding the CMD is required
Expand All @@ -109,6 +111,8 @@ services:
- "${ADS_PORT}:${ADS_PORT}"
networks:
- storedog-net
labels:
com.datadoghq.ad.logs: '[{"source": "python", "service": "ads"}]'
discounts:
depends_on:
- postgres
Expand All @@ -124,6 +128,8 @@ services:
- DD_TRACE_ANALYTICS_ENABLED=true
- DD_PROFILING_ENABLED=true
- DD_APPSEC_ENABLED=true
- DD_VERSION=7
- DD_ENV=dev
build:
context: ./services/discounts
command: ./my-wrapper-script.sh ${DISCOUNTS_PORT}
Expand All @@ -134,6 +140,8 @@ services:
- "22:22"
networks:
- storedog-net
labels:
com.datadoghq.ad.logs: '[{"source": "python", "service": "discounts"}]'
auth:
depends_on:
- postgres
Expand Down Expand Up @@ -190,6 +198,8 @@ services:
- "3030:8080"
networks:
- storedog-net
labels:
com.datadoghq.ad.logs: '[{"source": "java", "service": "ads-java"}]'
attackbox:
build:
context: ./services/attackbox
Expand Down
29 changes: 22 additions & 7 deletions services/ads/python/ads.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,39 +9,54 @@
from bootstrap import create_app
from models import Advertisement, db

from ddtrace import patch; patch(logging=True)
import logging
from ddtrace import tracer

FORMAT = ('%(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] '
'[dd.service=%(dd.service)s dd.env=%(dd.env)s dd.version=%(dd.version)s dd.trace_id=%(dd.trace_id)s dd.span_id=%(dd.span_id)s] '
'- %(message)s')
logging.basicConfig(format=FORMAT)
log = logging.getLogger(__name__)
log.level = logging.INFO

app = create_app()
CORS(app)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

@tracer.wrap()
@app.route('/')
def hello():
app.logger.info("home url for ads called")
log.info("home url for ads called")
return Response({'Hello from Advertisements!': 'world'}, mimetype='application/json')

@tracer.wrap()
@app.route('/banners/<path:banner>')
def banner_image(banner):
app.logger.info(f"attempting to grab banner at {banner}")
log.info(f"attempting to grab banner at {banner}")
return send_from_directory('ads', banner)

@tracer.wrap()
@app.route('/weighted-banners/<float:weight>')
def weighted_image(weight):
app.logger.info(f"attempting to grab banner weight of less than {weight}")
log.info(f"attempting to grab banner weight of less than {weight}")
advertisements = Advertisement.query.all()
for ad in advertisements:
if ad.weight < weight:
return jsonify(ad.serialize())

@tracer.wrap()
@app.route('/ads', methods=['GET', 'POST'])
def status():
if flask_request.method == 'GET':

try:
advertisements = Advertisement.query.all()
app.logger.info(f"Total advertisements available: {len(advertisements)}")
log.info(f"Total advertisements available: {len(advertisements)}")
return jsonify([b.serialize() for b in advertisements])

except:
app.logger.error("An error occurred while getting ad.")
log.error("An error occurred while getting ad.")
err = jsonify({'error': 'Internal Server Error'})
err.status_code = 500
return err
Expand All @@ -54,7 +69,7 @@ def status():
new_advertisement = Advertisement('Advertisement ' + str(discounts_count + 1),
'/',
random.randint(10,500))
app.logger.info(f"Adding advertisement {new_advertisement}")
log.info(f"Adding advertisement {new_advertisement}")
db.session.add(new_advertisement)
db.session.commit()
advertisements = Advertisement.query.all()
Expand All @@ -63,7 +78,7 @@ def status():

except:

app.logger.error("An error occurred while creating a new ad.")
log.error("An error occurred while creating a new ad.")
err = jsonify({'error': 'Internal Server Error'})
err.status_code = 500
return err
Expand Down
14 changes: 0 additions & 14 deletions services/ads/python/build.sh

This file was deleted.

14 changes: 0 additions & 14 deletions services/discounts/build.sh

This file was deleted.

23 changes: 18 additions & 5 deletions services/discounts/discounts.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,46 @@
from bootstrap import create_app
from models import Discount, DiscountType, db

from ddtrace import patch; patch(logging=True)
import logging
from ddtrace import tracer

FORMAT = ('%(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] '
'[dd.service=%(dd.service)s dd.env=%(dd.env)s dd.version=%(dd.version)s dd.trace_id=%(dd.trace_id)s dd.span_id=%(dd.span_id)s] '
'- %(message)s')
logging.basicConfig(format=FORMAT)
log = logging.getLogger(__name__)
log.level = logging.INFO

app = create_app()
CORS(app)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# Hello world
@tracer.wrap()
@app.route('/')
def hello():
return Response({'Hello from Discounts!': 'world'}, mimetype='application/json')

@tracer.wrap()
@app.route('/discount', methods=['GET', 'POST'])
def status():
if flask_request.method == 'GET':

try:
discounts = Discount.query.all()
app.logger.info(f"Discounts available: {len(discounts)}")
log.info(f"Discounts available: {len(discounts)}")

influencer_count = 0
for discount in discounts:
if discount.discount_type.influencer:
influencer_count += 1
app.logger.info(f"Total of {influencer_count} influencer specific discounts as of this request")
log.info(f"Total of {influencer_count} influencer specific discounts as of this request")

return jsonify([b.serialize() for b in discounts])

except:
app.logger.error("An error occurred while getting discounts.")
log.error("An error occurred while getting discounts.")
err = jsonify({'error': 'Internal Server Error'})
err.status_code = 500
return err
Expand All @@ -59,15 +72,15 @@ def status():
words.get_random(random.randint(2,4)),
random.randint(10,500),
new_discount_type)
app.logger.info(f"Adding discount {new_discount}")
log.info(f"Adding discount {new_discount}")
db.session.add(new_discount)
db.session.commit()
discounts = Discount.query.all()

return jsonify([b.serialize() for b in discounts])

except:
app.logger.error("An error occurred while creating a new discount.")
log.error("An error occurred while creating a new discount.")
err = jsonify({'error': 'Internal Server Error'})
err.status_code = 500
return err
Expand Down