Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Oracle Functionsのオブザーバビリティ / Oracle Functions O...
Search
oracle4engineer
PRO
May 31, 2022
Technology
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Oracle Functionsのオブザーバビリティ / Oracle Functions Observability
oracle4engineer
PRO
May 31, 2022
More Decks by oracle4engineer
See All by oracle4engineer
Oracle AI Databaseデータベース・サービスのメンテナンス(BaseDB/ExaDB-D/ExaDB-XS)
oracle4engineer
PRO
4
1.6k
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
3k
CrossplaneによるCloud Native Control Plane
oracle4engineer
PRO
0
110
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
440
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
300
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
Oracle Database Gold Image
oracle4engineer
PRO
1
180
Other Decks in Technology
See All in Technology
MCP Appsを作ってみよう
iwamot
PRO
4
670
Android の公式 Skill / Android skills
yanzm
0
150
新しいVibe Codingと”自走”について
watany
6
330
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
150
AIのReact習熟度を測る
uhyo
2
620
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.4k
MUSUBI 田中裕一『AIと共に行う「しごとのリデザイン」- スモールバックオフィス編』AI Ops Lab #4
musubi
0
210
手塩にかけりゃいいってもんじゃない
ming_ayami
0
600
脆弱性対応、どこで線を引くか
rymiyamoto
1
400
Chainlitで作るお手軽チャットUI
ynt0485
0
260
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.1k
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
200
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
How to Think Like a Performance Engineer
csswizardry
28
2.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building an army of robots
kneath
306
46k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Optimizing for Happiness
mojombo
378
71k
Mind Mapping
helmedeiros
PRO
1
250
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
What's in a price? How to price your products and services
michaelherold
247
13k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Transcript
Oracle Functionsのオブザーバビリティ Subhead goes here on one line Name 日本オラクル株式会社
May, 2022
Copyright © 2022, Oracle and/or its affiliates 2 1. Oracle
Functions – Metrics 2. Oracle Functions – Logs 3. Oracle Functions – Traces Agenda
Oracle Cloud Observability and Management Platform Copyright © 2022, Oracle
and/or its affiliates 3 Logging Logging Analytics Application Performance Monitoring Database Management Operations Insights Service Connector Hub オンプレミス、クラウドのOracle DBの リソース監視、パフォーマンス分析 OSやDBのキャパシティプランニングや リソースの需要予測 Monitoring Events Notifications Streaming OS Management Functions コンピュート、ネットワークなど各OCIリソー スの状態を監視するメトリックを管理 メール、SMS、Slack等のアラート メッセージを発信 クラウド上のリソースの変化を捉え、検知 した内容に応じたアクションの実行 インフラストラクチャを必要としないサー バーレスなアプリケーション実行環境 大量のデータストリームを処理するフルマ ネージドな分散メッセージング基盤 OS上で稼働するアプリケーションのワーク ロードの管理やリソース監視 Observability & Management サービス Platform サービス 監査ログやネットワーク、ストレージ・ログ などのOCIサービスに関するログ管理 様々な種類のログを集約し、機械学習 を用いた高度な分析とビジュアライズ Loggingのログを別のサービスに 転送するサービス連携基盤 Javaアプリケーションやマイクロサービスの パフォーマンス分析 Logs Metrics Traces
Copyright © 2022, Oracle and/or its affiliates 4 Oracle Functions
– Metrics
• OCIの各サービスの性能や状態を表すメトリックを収集・監視 • コンピュート・インスタンスのCPU, メモリ, ネットワーク送受信 • ロードバランサーのインバウンドリクエスト, 帯域幅 •
ブロック・ボリュームのI/Oスループットなど • 事前定義済みのダッシュボードが提供され特別な設定は必要なし • メトリック・エクスプローラーによる詳細なメトリック分析 • ユーザー自身によるカスタム・メトリックの作成 • ヘルスチェックによるコンピュートのサービス・ポートを監視 • メトリックの保持期間は90日間 • メトリックに対してアラームを作成可能 • アラームはNotificationsサービスと連携する事で、メール、 Slack等による通知やFunctionsサービスを起動し、特定のア クションを実行するなど、対応を自動化することも可能 Monitoring Copyright © 2022, Oracle and/or its affiliates 5 CPU: 80 CPU: 90 CPU: 40 CPU: 50 Customer Applications, Services, Resources OCI Services METRICS ALARMS Notifications Monitoring
Oracle Functionsの実行をモニターし、以下のメトリックを自動的に収集 ディメンション: メトリック・データをフィルターしたりグルーピングするもの • applicationId: ファンクションを管理するアプリケーションのOCID • resourceId: ファンクションのOCID
• responsetype: ファンクションが呼び出されたときのレスポンス(Success, Error, Throttled) Oracle Functionsのメトリック Copyright © 2022, Oracle and/or its affiliates 6 メトリック ディメンション 概要 FunctionExecutionDuration applicationId, resourceId ファンクションの合計実行時間 [ms] FunctionInvocationCount applicationId, resourceId ファンクションの呼び出しの合計数 [count] FunctionResponseCount applicationId, resourceId, responseType ファンクション・レスポンスの合計数 [count]
収集したメトリックは、事前定義済みのダッシュボードとして提供 Function Metric Copyright © 2022, Oracle and/or its affiliates
7
Copyright © 2022, Oracle and/or its affiliates 8 Oracle Functions
– Logs
OCI内のログを有効化し、ログデータの簡易的な分析と連携管理を提供 以下の3種類のログに対応 監査ログ • デフォルトで収集されるOCIコンソールやAPIの操作ログ サービス・ログ • OCIネイティブなサービスから生成されるログ • ファンクション,
ロードバランサー, オブジェクト・ストレージ, VCN Flow Logs等 カスタム・ログ • Linux syslogやWindows イベント等のOSで管理されるログ 監査ログは最大365日、サービス/カスタムログは最大6カ月保持 オブジェクトストレージやLogging Analyticsをログデータを移動して、ログの 永続的な保管が可能 高度なログ分析やアラート、ビジュアライゼーションにはLogging analyticsと 連携して使用するのがもっとも効果的 Logging Copyright © 2021, Oracle and/or its affiliates 9 サービス・ログ Logging Object Storage VCN Flow Logs Load Balancer Auditing 監査・ログ カスタム・ログ
Functionsのログを有効化した場合、サービス・ログとしてOCI Loggingに出力される • アプリケーション(=ファンクションの管理単位)単位に出力される • 呼びだし時のログ(呼び出しに要した時間、失敗時のエラーコード)は自動的に収集される • 実行ログは、標準/標準エラー出力に出力したものが自動的に収集される OCI上で統合的な運用が可能 •
Service Connector Hubとの併用で、ログ出力を元にした操作が可能 OCI Functionsのログ Copyright © 2022, Oracle and/or its affiliates 10 console.log(‘debug log’); // Node.js System.err.println(“debug log”); // Java logステートメント アプリケーション単位に ログを有効化 標準/標準エラー出力に出力したログをLoggingの インターフェースを利用して参照
Oracle Functionsのログは、アプリケーション(=ファンクションの管理単位)単位に特定のログ・グループ (=ログの管理単位)に出力される ログの管理単位 Copyright © 2022, Oracle and/or its
affiliates 11 function-a function-b アプリケーション #1 ・・・ function-c function-d アプリケーション #2 ・・・ ・・・ Oracle Functions Functions OCI Logging Logging ログ・グループ #1 app1_invoke app2_invoke ・・・ ログ・グループ #2 app3_invoke app4_invoke ・・・ function-a ログ function-b ログ ・・・
出力される内容 Copyright © 2022, Oracle and/or its affiliates 12 {
"datetime": 1636351104724, "logContent": { "data": { "applicationId": "ocid1.fnapp.oc1.ap-tokyo-1.aaaaaaaaagi5fasv4qxkb3vootiz77ugdozpqnqvnxvruusa2pzioyb7pptq", "containerId": "01FKZ208K3000000000000024J", "functionId": "ocid1.fnfunc.oc1.ap-tokyo-1.aaaaaaaaei3thjhk56scniiex44zthk7osi22aay4cjomkumgtmtfd34y67a", "message": "INFO: tracingContext.functionName: fn-tracing", "opcRequestId": "/01FKZ1ZVFZ000000000000V7NJ/01FKZ1ZVFZ000000000000V7NK", "requestId": "/01FKZ1ZVFZ000000000000V7NJ/01FKZ1ZVFZ000000000000V7NK", "src": "STDERR" }, "id": "2cf9c27d-c11f-4d6a-ae84-ced28c7b5bae", "oracle": { "compartmentid": "ocid1.compartment.oc1..aaaaaaaanjtbllhqxcg67dq7em3vto2mvsbc6pbgk4pw6cx37afzk3tngmoa", "ingestedtime": "2021-11-08T05:58:36.340Z", "loggroupid": "ocid1.loggroup.oc1.ap-tokyo-1.amaaaaaassl65iqambbuvvbisri2xehhg274e4fjej2qod4v7raw32dr253a", "logid": "ocid1.log.oc1.ap-tokyo-1.amaaaaaassl65iqauyddmj3zzrfgbvoublwzxrvktwmdeutz2jjuqxcgasiq", "tenantid": "ocid1.tenancy.oc1..aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4mczitpdaymbuazc5tkguca" }, "source": "sandbox-app", "specversion": "1.0", "subject": "fn-tracing", "time": "2021-11-08T05:58:24.724Z", "type": "com.oraclecloud.functions.application.functioninvoke" } } 出力内容 アプリケーション名 Function名 同一Functionの複数コンテナの出力が混在する場合これで識別可能 標準出力(STDOUT) or 標準エラー出力(STDERR)
Copyright © 2022, Oracle and/or its affiliates 13 Oracle Functions
– Monitoring
アプリケーションのパフォーマンスを可視化し、問題の根本的原因を サーバーおよびユーザー・サイドから分析し解決をサポート • 分散トレーシング • トレースデータに基づいてアプリケーションのどの箇所が、または、 サービス間の連携でどのサービスがボトルネックなのかを可視化 • Open Tracing,
OpenTelemetry互換 • Javaアプリケーション実行環境の監視 • WebLogic, Tomcat, TomEE, Spring Boot • ブラウザ・エージェントにより、実際のユーザーのブラウザ操作を記 録しページ・ロードやパフォーマンスを監視 • アプリケーションやAPIのエンドポイントに対して定常的にリクエスト を実行し、死活監視およびパフォーマンス監視を実行 • 定義済みダッシュボードによる効率的なモニタリング Application Performance Monitoring(APM) Copyright © 2022, Oracle and/or its affiliates 14 Application Performance Monitoring アプリケーション 監視 エンドユーザー 性能監視
Application Performance Monitoring (APM) との統合によってFunctionのトレースが可能に • Function間の呼び出しや、他サービスの呼び出しに関連する情報をAPMでend-to-endに可視化 • 障害発生時の原因特定や性能上のボトルネックとなっている箇所の特定に貢献 Application
Performance Monitoring(APM)を用いたFunctionのトレース Copyright © 2022, Oracle and/or its affiliates 15 スパンの詳細情報 • 操作/処理名 • トレース開始からの経過時間 • スパンの実行時間 • トレースID • スパンID • etc.
• デフォルト・スパン • 関数呼び出し全体(リクエスト~レスポンス)の実行コンテキストの情報を提供する • ポリシーやFunctionの設定を実施後、関数コードに変更なしで自動的に提供される(※後述) • カスタム・スパン • 任意の範囲(スパン)の情報を提供する
• メソッドの処理開始~終了、メソッド内の特定処理の開始~終了 etc. • デフォルト・スパンよりも細かい単位で情報の取得が可能 • Zipkin等のクライアント・ライブラリを用いて、関数コード中に直接スパン定義を埋め込む デフォルト・スパン/カスタム・スパン Copyright © 2022, Oracle and/or its affiliates 16 デフォルト・スパン カスタム・スパン トレース: コンポーネント間を跨ぐイベントまたはトランザクションの因果連鎖の指標のことで、1つ以上のスパンで構成される スパン: トレース内の名前、開始時間や期間の情報を持つ操作・作業の論理単位のこと
関数呼び出し全体(リクエスト~レスポンスまで)の実行コンテキストの情報をOCI上の設定のみで自動的に提供 トレースの有効化 Copyright © 2022, Oracle and/or its affiliates 17
Functions Policies Allow service FaaS to use apm-domains in compartment <compartment-name> Allow group <group-name> to use apm-domains in comparetment <compartment-name> アプリケーション単位のトレース可否の設定 + ファンクション単位のトレース可否の設定 Application Performance Monitoring
Copyright © 2022, Oracle and/or its affiliates 18 Thank you
None