3
Jenkinsfile
vendored
3
Jenkinsfile
vendored
@@ -6,7 +6,6 @@ pipeline {
|
|||||||
DISCORD = credentials('jc_discord')
|
DISCORD = credentials('jc_discord')
|
||||||
DISCORD_ERR_STAGING = credentials('jc_discord_err_staging')
|
DISCORD_ERR_STAGING = credentials('jc_discord_err_staging')
|
||||||
DISCORD_ERR_PROD = credentials('jc_discord_err_prod')
|
DISCORD_ERR_PROD = credentials('jc_discord_err_prod')
|
||||||
NEWRELIC_KEY = credentials('newrelic')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stages{
|
stages{
|
||||||
@@ -33,7 +32,7 @@ pipeline {
|
|||||||
git branch: 'master',
|
git branch: 'master',
|
||||||
credentialsId: 'Git',
|
credentialsId: 'Git',
|
||||||
url: 'git@git.jakecharman.co.uk:jake/jc-ng.git'
|
url: 'git@git.jakecharman.co.uk:jake/jc-ng.git'
|
||||||
sh "sed -i s/dummy/$NEWRELIC_KEY"
|
|
||||||
sh "./build.sh git.jakecharman.co.uk/jake/jakecharman.co.uk $BUILD_NUMBER"
|
sh "./build.sh git.jakecharman.co.uk/jake/jakecharman.co.uk $BUILD_NUMBER"
|
||||||
sh "./build.sh europe-west2-docker.pkg.dev/jakecharman/web/jakecharman.co.uk $BUILD_NUMBER"
|
sh "./build.sh europe-west2-docker.pkg.dev/jakecharman/web/jakecharman.co.uk $BUILD_NUMBER"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,14 +11,12 @@ import json
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from requests import post
|
from requests import post
|
||||||
from flask import Flask, render_template, Response, url_for, request, send_from_directory, make_response
|
from flask import Flask, render_template, Response, url_for, request, send_from_directory, make_response
|
||||||
from newrelic import agent
|
|
||||||
from PIL import Image, UnidentifiedImageError
|
from PIL import Image, UnidentifiedImageError
|
||||||
from .content import ContentArea
|
from .content import ContentArea
|
||||||
from .contact import ContactForm
|
from .contact import ContactForm
|
||||||
from .storage import LocalStorage
|
from .storage import LocalStorage
|
||||||
from .links import Links
|
from .links import Links
|
||||||
|
|
||||||
agent.initialize('/var/www/jc/newrelic.ini')
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
md_path = path.join(path.realpath(path.dirname(__file__)), path.normpath('../projects/'))
|
md_path = path.join(path.realpath(path.dirname(__file__)), path.normpath('../projects/'))
|
||||||
|
|||||||
255
src/newrelic.ini
255
src/newrelic.ini
@@ -1,255 +0,0 @@
|
|||||||
# ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#
|
|
||||||
# This file configures the New Relic Python Agent.
|
|
||||||
#
|
|
||||||
# The path to the configuration file should be supplied to the function
|
|
||||||
# newrelic.agent.initialize() when the agent is being initialized.
|
|
||||||
#
|
|
||||||
# The configuration file follows a structure similar to what you would
|
|
||||||
# find for Microsoft Windows INI files. For further information on the
|
|
||||||
# configuration file format see the Python ConfigParser documentation at:
|
|
||||||
#
|
|
||||||
# http://docs.python.org/library/configparser.html
|
|
||||||
#
|
|
||||||
# For further discussion on the behaviour of the Python agent that can
|
|
||||||
# be configured via this configuration file see:
|
|
||||||
#
|
|
||||||
# https://docs.newrelic.com/docs/apm/agents/python-agent/configuration/python-agent-configuration/
|
|
||||||
#
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# Here are the settings that are common to all environments.
|
|
||||||
|
|
||||||
[newrelic]
|
|
||||||
|
|
||||||
# You must specify the license key associated with your New
|
|
||||||
# Relic account. This may also be set using the NEW_RELIC_LICENSE_KEY
|
|
||||||
# environment variable. This key binds the Python Agent's data to
|
|
||||||
# your account in the New Relic service. For more information on
|
|
||||||
# storing and generating license keys, see
|
|
||||||
# https://docs.newrelic.com/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key
|
|
||||||
license_key = dummy
|
|
||||||
|
|
||||||
# The application name. Set this to be the name of your
|
|
||||||
# application as you would like it to show up in New Relic UI.
|
|
||||||
# You may also set this using the NEW_RELIC_APP_NAME environment variable.
|
|
||||||
# The UI will then auto-map instances of your application into a
|
|
||||||
# entry on your home dashboard page. You can also specify multiple
|
|
||||||
# app names to group your aggregated data. For further details,
|
|
||||||
# please see:
|
|
||||||
# https://docs.newrelic.com/docs/apm/agents/manage-apm-agents/app-naming/use-multiple-names-app/
|
|
||||||
app_name = jakecharman.co.uk
|
|
||||||
|
|
||||||
# When "true", the agent collects performance data about your
|
|
||||||
# application and reports this data to the New Relic UI at
|
|
||||||
# newrelic.com. This global switch is normally overridden for
|
|
||||||
# each environment below. It may also be set using the
|
|
||||||
# NEW_RELIC_MONITOR_MODE environment variable.
|
|
||||||
monitor_mode = true
|
|
||||||
|
|
||||||
# Sets the name of a file to log agent messages to. Whatever you
|
|
||||||
# set this to, you must ensure that the permissions for the
|
|
||||||
# containing directory and the file itself are correct, and
|
|
||||||
# that the user that your web application runs as can write out
|
|
||||||
# to the file. If not able to out a log file, it is also
|
|
||||||
# possible to say "stderr" and output to standard error output.
|
|
||||||
# This would normally result in output appearing in your web
|
|
||||||
# server log. It can also be set using the NEW_RELIC_LOG
|
|
||||||
# environment variable.
|
|
||||||
log_file = stdout
|
|
||||||
|
|
||||||
# Sets the level of detail of messages sent to the log file, if
|
|
||||||
# a log file location has been provided. Possible values, in
|
|
||||||
# increasing order of detail, are: "critical", "error", "warning",
|
|
||||||
# "info" and "debug". When reporting any agent issues to New
|
|
||||||
# Relic technical support, the most useful setting for the
|
|
||||||
# support engineers is "debug". However, this can generate a lot
|
|
||||||
# of information very quickly, so it is best not to keep the
|
|
||||||
# agent at this level for longer than it takes to reproduce the
|
|
||||||
# problem you are experiencing. This may also be set using the
|
|
||||||
# NEW_RELIC_LOG_LEVEL environment variable.
|
|
||||||
log_level = info
|
|
||||||
|
|
||||||
# High Security Mode enforces certain security settings, and prevents
|
|
||||||
# them from being overridden, so that no sensitive data is sent to New
|
|
||||||
# Relic. Enabling High Security Mode means that request parameters are
|
|
||||||
# not collected and SQL can not be sent to New Relic in its raw form.
|
|
||||||
# To activate High Security Mode, it must be set to 'true' in this
|
|
||||||
# local .ini configuration file AND be set to 'true' in the
|
|
||||||
# server-side configuration in the New Relic user interface. It can
|
|
||||||
# also be set using the NEW_RELIC_HIGH_SECURITY environment variable.
|
|
||||||
# For details, see
|
|
||||||
# https://docs.newrelic.com/docs/subscriptions/high-security
|
|
||||||
high_security = false
|
|
||||||
|
|
||||||
# The Python Agent will attempt to connect directly to the New
|
|
||||||
# Relic service. If there is an intermediate firewall between
|
|
||||||
# your host and the New Relic service that requires you to use a
|
|
||||||
# HTTP proxy, then you should set both the "proxy_host" and
|
|
||||||
# "proxy_port" settings to the required values for the HTTP
|
|
||||||
# proxy. The "proxy_user" and "proxy_pass" settings should
|
|
||||||
# additionally be set if proxy authentication is implemented by
|
|
||||||
# the HTTP proxy. The "proxy_scheme" setting dictates what
|
|
||||||
# protocol scheme is used in talking to the HTTP proxy. This
|
|
||||||
# would normally always be set as "http" which will result in the
|
|
||||||
# agent then using a SSL tunnel through the HTTP proxy for end to
|
|
||||||
# end encryption.
|
|
||||||
# See https://docs.newrelic.com/docs/apm/agents/python-agent/configuration/python-agent-configuration/#proxy
|
|
||||||
# for information on proxy configuration via environment variables.
|
|
||||||
# proxy_scheme = http
|
|
||||||
# proxy_host = hostname
|
|
||||||
# proxy_port = 8080
|
|
||||||
# proxy_user =
|
|
||||||
# proxy_pass =
|
|
||||||
|
|
||||||
# Capturing request parameters is off by default. To enable the
|
|
||||||
# capturing of request parameters, first ensure that the setting
|
|
||||||
# "attributes.enabled" is set to "true" (the default value), and
|
|
||||||
# then add "request.parameters.*" to the "attributes.include"
|
|
||||||
# setting. For details about attributes configuration, please
|
|
||||||
# consult the documentation.
|
|
||||||
# attributes.include = request.parameters.*
|
|
||||||
|
|
||||||
# The transaction tracer captures deep information about slow
|
|
||||||
# transactions and sends this to the UI on a periodic basis. The
|
|
||||||
# transaction tracer is enabled by default. Set this to "false"
|
|
||||||
# to turn it off.
|
|
||||||
transaction_tracer.enabled = true
|
|
||||||
|
|
||||||
# Threshold in seconds for when to collect a transaction trace.
|
|
||||||
# When the response time of a controller action exceeds this
|
|
||||||
# threshold, a transaction trace will be recorded and sent to
|
|
||||||
# the UI. Valid values are any positive float value, or (default)
|
|
||||||
# "apdex_f", which will use the threshold for a dissatisfying
|
|
||||||
# Apdex controller action - four times the Apdex T value.
|
|
||||||
transaction_tracer.transaction_threshold = apdex_f
|
|
||||||
|
|
||||||
# When the transaction tracer is on, SQL statements can
|
|
||||||
# optionally be recorded. The recorder has three modes, "off"
|
|
||||||
# which sends no SQL, "raw" which sends the SQL statement in its
|
|
||||||
# original form, and "obfuscated", which strips out numeric and
|
|
||||||
# string literals.
|
|
||||||
transaction_tracer.record_sql = obfuscated
|
|
||||||
|
|
||||||
# Threshold in seconds for when to collect stack trace for a SQL
|
|
||||||
# call. In other words, when SQL statements exceed this
|
|
||||||
# threshold, then capture and send to the UI the current stack
|
|
||||||
# trace. This is helpful for pinpointing where long SQL calls
|
|
||||||
# originate from in an application.
|
|
||||||
transaction_tracer.stack_trace_threshold = 0.5
|
|
||||||
|
|
||||||
# Determines whether the agent will capture query plans for slow
|
|
||||||
# SQL queries. Only supported in MySQL and PostgreSQL. Set this
|
|
||||||
# to "false" to turn it off.
|
|
||||||
transaction_tracer.explain_enabled = true
|
|
||||||
|
|
||||||
# Threshold for query execution time below which query plans
|
|
||||||
# will not not be captured. Relevant only when "explain_enabled"
|
|
||||||
# is true.
|
|
||||||
transaction_tracer.explain_threshold = 0.5
|
|
||||||
|
|
||||||
# Space separated list of function or method names in form
|
|
||||||
# 'module:function' or 'module:class.function' for which
|
|
||||||
# additional function timing instrumentation will be added.
|
|
||||||
transaction_tracer.function_trace =
|
|
||||||
|
|
||||||
# The error collector captures information about uncaught
|
|
||||||
# exceptions or logged exceptions and sends them to UI for
|
|
||||||
# viewing. The error collector is enabled by default. Set this
|
|
||||||
# to "false" to turn it off. For more details on errors, see
|
|
||||||
# https://docs.newrelic.com/docs/apm/agents/manage-apm-agents/agent-data/manage-errors-apm-collect-ignore-or-mark-expected/
|
|
||||||
error_collector.enabled = true
|
|
||||||
|
|
||||||
# To stop specific errors from reporting to the UI, set this to
|
|
||||||
# a space separated list of the Python exception type names to
|
|
||||||
# ignore. The exception name should be of the form 'module:class'.
|
|
||||||
error_collector.ignore_classes =
|
|
||||||
|
|
||||||
# Expected errors are reported to the UI but will not affect the
|
|
||||||
# Apdex or error rate. To mark specific errors as expected, set this
|
|
||||||
# to a space separated list of the Python exception type names to
|
|
||||||
# expected. The exception name should be of the form 'module:class'.
|
|
||||||
error_collector.expected_classes =
|
|
||||||
|
|
||||||
# Browser monitoring is the Real User Monitoring feature of the UI.
|
|
||||||
# For those Python web frameworks that are supported, this
|
|
||||||
# setting enables the auto-insertion of the browser monitoring
|
|
||||||
# JavaScript fragments.
|
|
||||||
browser_monitoring.auto_instrument = true
|
|
||||||
|
|
||||||
# A thread profiling session can be scheduled via the UI when
|
|
||||||
# this option is enabled. The thread profiler will periodically
|
|
||||||
# capture a snapshot of the call stack for each active thread in
|
|
||||||
# the application to construct a statistically representative
|
|
||||||
# call tree. For more details on the thread profiler tool, see
|
|
||||||
# https://docs.newrelic.com/docs/apm/apm-ui-pages/events/thread-profiler-tool/
|
|
||||||
thread_profiler.enabled = true
|
|
||||||
|
|
||||||
# Your application deployments can be recorded through the
|
|
||||||
# New Relic REST API. To use this feature provide your API key
|
|
||||||
# below then use the `newrelic-admin record-deploy` command.
|
|
||||||
# This can also be set using the NEW_RELIC_API_KEY
|
|
||||||
# environment variable.
|
|
||||||
# api_key =
|
|
||||||
|
|
||||||
# Distributed tracing lets you see the path that a request takes
|
|
||||||
# through your distributed system. For more information, please
|
|
||||||
# consult our distributed tracing planning guide.
|
|
||||||
# https://docs.newrelic.com/docs/transition-guide-distributed-tracing
|
|
||||||
distributed_tracing.enabled = true
|
|
||||||
|
|
||||||
# This setting enables log decoration, the forwarding of log events,
|
|
||||||
# and the collection of logging metrics if these sub-feature
|
|
||||||
# configurations are also enabled. If this setting is false, no
|
|
||||||
# logging instrumentation features are enabled. This can also be
|
|
||||||
# set using the NEW_RELIC_APPLICATION_LOGGING_ENABLED environment
|
|
||||||
# variable.
|
|
||||||
# application_logging.enabled = true
|
|
||||||
|
|
||||||
# If true, the agent captures log records emitted by your application
|
|
||||||
# and forwards them to New Relic. `application_logging.enabled` must
|
|
||||||
# also be true for this setting to take effect. You can also set
|
|
||||||
# this using the NEW_RELIC_APPLICATION_LOGGING_FORWARDING_ENABLED
|
|
||||||
# environment variable.
|
|
||||||
# application_logging.forwarding.enabled = true
|
|
||||||
|
|
||||||
# If true, the agent decorates logs with metadata to link to entities,
|
|
||||||
# hosts, traces, and spans. `application_logging.enabled` must also
|
|
||||||
# be true for this setting to take effect. This can also be set
|
|
||||||
# using the NEW_RELIC_APPLICATION_LOGGING_LOCAL_DECORATING_ENABLED
|
|
||||||
# environment variable.
|
|
||||||
# application_logging.local_decorating.enabled = true
|
|
||||||
|
|
||||||
# If true, the agent captures metrics related to the log lines
|
|
||||||
# being sent up by your application. This can also be set
|
|
||||||
# using the NEW_RELIC_APPLICATION_LOGGING_METRICS_ENABLED
|
|
||||||
# environment variable.
|
|
||||||
# application_logging.metrics.enabled = true
|
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#
|
|
||||||
# The application environments. These are specific settings which
|
|
||||||
# override the common environment settings. The settings related to a
|
|
||||||
# specific environment will be used when the environment argument to the
|
|
||||||
# newrelic.agent.initialize() function has been defined to be either
|
|
||||||
# "development", "test", "staging" or "production".
|
|
||||||
#
|
|
||||||
|
|
||||||
[newrelic:development]
|
|
||||||
monitor_mode = false
|
|
||||||
|
|
||||||
[newrelic:test]
|
|
||||||
monitor_mode = false
|
|
||||||
|
|
||||||
[newrelic:staging]
|
|
||||||
app_name = jakecharman.co.uk (Staging)
|
|
||||||
monitor_mode = true
|
|
||||||
|
|
||||||
[newrelic:production]
|
|
||||||
monitor_mode = true
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
Reference in New Issue
Block a user