コード例 #1
0
    def test_with_all_params(self, ping):

        monitor = cronitor.Monitor(FAKE_KEY, env='staging')

        params = {
            'state': 'run',
            'host': 'foo',
            'message': 'test message',
            'series': 'abc',
            'metrics': {
                'duration': 100,
                'count': 5,
                'error_count': 2
            }
        }

        monitor.ping(**params)
        del params['metrics']
        params['metric'] = [
            ANY,
            ANY,
            ANY,
        ]
        params['env'] = monitor.env
        params['stamp'] = ANY

        ping.assert_called_once_with(
            headers={
                'User-Agent': 'cronitor-python',
            },
            params=params,
            timeout=5,
            url='https://cronitor.link/p/{}/{}'.format(FAKE_API_KEY, FAKE_KEY))
コード例 #2
0
    def test_endpoints(self):
        monitor = cronitor.Monitor(key=FAKE_KEY)

        self.assertTrue(monitor.ping())

        states = ['run', 'complete', 'fail', 'ok']
        for state in states:
            self.assertTrue(monitor.ping(state=state))
コード例 #3
0
 def test_convert_metrics_hash(self):
     monitor = cronitor.Monitor(FAKE_KEY)
     clean = monitor._clean_params(
         {'metrics': {
             'duration': 100,
             'count': 500,
             'error_count': 20
         }})
     self.assertListEqual(
         sorted(clean['metric']),
         sorted(['count:500', 'duration:100', 'error_count:20']))
コード例 #4
0
    # django.contrib.auth) you may enable sending PII data.
    send_default_pii=True)

# Cronitor

cronitor.api_key = os.getenv('CRONITOR_KEY')


# monitor any function
@cronitor.job('QWpptg')
def update_database(args):
    call_command('update_database')


# Or embed telemetry events in your application
monitor = cronitor.Monitor('QWpptg')
# send a run event (a job/process has started)
monitor.ping(state='run')
# send a complete event (a job/process has completed successfully)
monitor.ping(state='complete')
# send a failure event
monitor.ping(state='fail')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ["178.62.109.10"]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
コード例 #5
0
# Import for DynamoDB
import boto3

dynamodb = boto3.resource(
    'dynamodb',
    region_name=AWS_REGION_NAME,
    endpoint_url=AWS_DYNAMODB_ENDPOINT,
    aws_access_key_id=AWS_ACCESS_KEY_ID,
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
)

print('successfully init dynamodb')
# Import for Cronitor
import cronitor

cronitorRecommenderMonitor = cronitor.Monitor(CRONITOR_RECOMMENDER_KEY)

# Constants
NUM_RELATED_POSTS = 10  # Define the number of closely related posts we want to display for each post


def markdown_to_text(content):
    """ Converts a markdown file to plaintext """

    # md -> html -> text since BeautifulSoup can extract text cleanly
    html = markdown(content)

    # remove code snippets
    html = re.sub(r'<pre>(.*?)</pre>', ' ', html)
    html = re.sub(r'<code>(.*?)</code >', ' ', html)
コード例 #6
0
 def test_delete_no_id(self, mocked_delete):
     mocked_delete.return_value.status_code = 204
     monitor = cronitor.Monitor(MONITOR['key'])
     monitor.delete()
コード例 #7
0
 def test_get_monitor_invalid_code(self, mocked_get):
     mocked_get.return_value.status_code = 404
     with self.assertRaises(cronitor.MonitorNotFound):
         monitor = cronitor.Monitor("I don't exist")
         monitor.data