File tree Expand file tree Collapse file tree 5 files changed +126
-0
lines changed Expand file tree Collapse file tree 5 files changed +126
-0
lines changed Original file line number Diff line number Diff line change 1+ # Google Error Reorting Samples Samples
2+
3+ This section contains samples for [ Google Cloud Error Reporting] ( https://cloud.google.com/error-reporting ) .
4+
5+ A startup script has been provided to demonstrated how to properly provision a GCE
6+ instance with fluentd configured. Note the intallation of fluentd, the addition of the config file,
7+ and the restarting of the fluetnd service. You can start an instance using
8+ it like this:
9+
10+ gcloud compute instances create example-instance --metadata-from-file startup-script=startup_script.sh
11+
12+ or simply use it as reference when creating your own instance.
13+
14+ After fluentd is configured, main.py could be used to simulate an error:
15+
16+ gcloud compute copy-files main.py example-instance:~/main.py
17+
18+ Then,
19+
20+ gcloud compute ssh example-instance
21+ python ~/main.py
22+
23+ And you will see the message in the Errors Console.
24+
25+ <!-- auto-doc-link -->
26+
27+ <!-- end-auto-doc-link -->
Original file line number Diff line number Diff line change 1+ # Copyright 2016 Google Inc. All rights reserved.
2+ #
3+ # Licensed under the Apache License, Version 2.0 (the "License");
4+ # you may not use this file except in compliance with the License.
5+ # You may obtain a copy of the License at
6+ #
7+ # http://www.apache.org/licenses/LICENSE-2.0
8+ #
9+ # Unless required by applicable law or agreed to in writing, software
10+ # distributed under the License is distributed on an "AS IS" BASIS,
11+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ # See the License for the specific language governing permissions and
13+ # limitations under the License.
14+
15+ # [START error_reporting]
16+ import traceback
17+
18+ import fluent .event
19+ import fluent .sender
20+
21+
22+ def simulate_error ():
23+ fluent .sender .setup ('myapp' , host = 'localhost' , port = 24224 )
24+
25+ def report (ex ):
26+ data = {}
27+ data ['message' ] = '{0}' .format (ex )
28+ data ['serviceContext' ] = {'service' : 'myapp' }
29+ # ... add more metadata
30+ fluent .event .Event ('errors' , data )
31+
32+ # report exception data using:
33+ try :
34+ # simulate calling a method that's not defined
35+ raise NameError
36+ except Exception :
37+ report (traceback .format_exc ())
38+ # [END error_reporting]
39+
40+ if __name__ == '__main__' :
41+ simulate_error ()
Original file line number Diff line number Diff line change 1+ fluent-logger == 0.4.1
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+ # Copyright 2016 Google Inc. All rights reserved.
3+ #
4+ # Licensed under the Apache License, Version 2.0 (the "License");
5+ # you may not use this file except in compliance with the License.
6+ # You may obtain a copy of the License at
7+ #
8+ # http://www.apache.org/licenses/LICENSE-2.0
9+ #
10+ # Unless required by applicable law or agreed to in writing, software
11+ # distributed under the License is distributed on an "AS IS" BASIS,
12+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ # See the License for the specific language governing permissions and
14+ # limitations under the License.
15+
16+ set -v
17+
18+ curl -sSO " https://dl.google.com/cloudagents/install-logging-agent.sh"
19+ chmod +x install-logging-agent.sh
20+ ./install-logging-agent.sh
21+ mkdir -p /etc/google-fluentd/config.d/
22+ cat << EOF > /etc/google-fluentd/config.d/forward.conf
23+ <source>
24+ type forward
25+ port 24224
26+ </source>
27+ EOF
28+ service google-fluentd restart
29+
30+ apt-get update
31+ apt-get install -yq \
32+ git build-essential supervisor python python-dev python-pip libffi-dev \
33+ libssl-dev
34+ pip install fluent-logger
35+
Original file line number Diff line number Diff line change 1+ # Copyright 2016 Google Inc. All rights reserved.
2+ #
3+ # Licensed under the Apache License, Version 2.0 (the "License");
4+ # you may not use this file except in compliance with the License.
5+ # You may obtain a copy of the License at
6+ #
7+ # http://www.apache.org/licenses/LICENSE-2.0
8+ #
9+ # Unless required by applicable law or agreed to in writing, software
10+ # distributed under the License is distributed on an "AS IS" BASIS,
11+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ # See the License for the specific language governing permissions and
13+ # limitations under the License.
14+
15+ import main
16+ import mock
17+
18+
19+ @mock .patch ("fluent.event" )
20+ def test_error_sends (event_mock ):
21+ main .simulate_error ()
22+ event_mock .Event .assert_called_once_with (mock .ANY , mock .ANY )
You can’t perform that action at this time.
0 commit comments