notebook

都内でWEB系エンジニアやってます。

CloudMonitoringでアラートを作成しSlackへ通知する

GCPでの通知でSlackが連携先として追加できるようになったみたいなのでちょっと触ってみるためにCloudMonitoringと合わせて使ってみた 流れ やることは以下 通知先の設定 GUIでSlack連携の設定 terraform import Alert Policyの設定 Monitoring指標の設定 GU…

Cloud LoggingからログデータをBigQueryへExportする

ログからBigQueryにExportできるのは知っていたのでとりあえず使ってみようかと思って触ってみたら思った以上に簡単だった Terraformで設定を定義する Terraformで表すとこんな感じ main.tf data "google_client_config" "current" { } iam.tf locals { logg…

じぶん Release Notes (ver 0.33.11)

swfz (ver 0.33.11) がリリースされました、更新内容は次のとおりです 技術 やったこと Google Apps Script GmailApp SpreadsheetApp FormApp 読んだ本 勉強会 BIツールカジュアル座談会 ~Googleデータポータル~ - connpass bitoollabo.connpass.com Datapor…

jqで特定リストの中のどれかにマッチするか?という条件を扱う

Rubyでいうinclude?的なことをやりたかったがさっとできなかったのでメモを残す サンプルはこんな感じ $ cat sample.json [ { "user": "hoge", "team": "" }, { "user": "fuga", "team": "" }, { "user": "piyo", "team": "" }, { "user": "foo", "team": ""…

CloudWatchLogs Insightsで色々集計してみる

AWS

CloudWatchLogsにログを流してInsightsでクエリ書いて集計してみた なお、本記事はクエリのメモがメインなので実行結果まで残っていないものもありあまり参考になるかはわからない 構文について CloudWatch Logs Insights クエリ構文 - Amazon CloudWatch Lo…

ブックマークレットを使ってGoogleSlideでの発表中にユーザーツールのコメントを流す

ちょうど社内の勉強会で発表する機会があったのと、もともとこんなことやりたいなーと思っていたので調べてみた GoogleSlideにはユーザーツールと言ってslidoのような見ているユーザーがスライドに対して質問を投稿できる機能がある(発表者がプレゼンターか…

じぶん Release Notes (ver 0.33.10)

swfz (ver 0.33.10) がリリースされました、更新内容は次のとおりです 技術 やったこと Jest, React TestingLibrary All posts | >> swfz[:memo]のテスト周りの整備をした Jestのスナップショットテスト TestingLibraryによるUIテスト GoogleCloudPlatform W…

GA3のデータをBigQueryに移す

本ブログで取っているGAの計測データをGA4に切り替えた(並行して数値は取得中) APIをたたくスクリプトを書いて集計してBigQueryに入れてDataPortalから日ごろのアクセスなどを見ているがGA4に完全移行するには過去のPVもやはり見たいよなーと思っていた GA4…

GCPのWorkflowsでBigQueryコネクタを使ってみる

掲題の通りWorkflowsにBigQueryコネクタが来たので使ってみる コネクタについてのドキュメントは下記 BigQuery API Connector Overview | ワークフロー | Google Cloud cloud.google.com 要はWorkflowsから他のGoogleCloud製品にアクセスするための仕組み 今…

じぶん Release Notes (ver 0.33.9)

swfz (ver 0.33.9) がリリースされました、更新内容は次のとおりです 技術 やったこと ブックマークレット GoogleSlideのユーザーツールを利用して発表中のスライドにコメントを流せるようにした(別途記事書く予定) swfz/bookmarklets 3. swfz/bookmarklets …

GitHubActionsでmatrixの値を動的に扱う

実際使うかと言うとどうなんだろうという気もするが、できるの知らなかったので残しておく いきなりサンプルコードだがこれだけで理解はできると思う .github/workflows/dynamic-matrix.yml name: dynamic matrix on: [push] jobs: set-matrix: runs-on: ubu…

BigQueryで重複を排除した最新レコードを取り出す

最近社内の勉強会でなるほどと思ったので試して備忘録として残しておく 色々調べた後だと頻出するイディオムだった感はある… BigQueryで重複を除いて最新状態のデータを出力する方法 データの取り込みもしくは入れ込む際にtimestampカラムを追加する timesta…

BigQuery+Dataportalでインタラクティブフィルタを活用する

プライベートでブログのPVなどを集計していて BigQueryにTwitterのエゴサやGoogleAnalyticsのPVなどを取り込んで、Dataportalから参照してグラフにして定期的に見るようにしている 記事についてのデータ(urlやタグ)はjsonで持っていてこちらもBigQueryに定期…

Node REPL+Puppeteerでの開発Tips

Puppeteerでスクレイピングしていてやっと「これ楽だわ」みたいな感じのやり方が定着してきた気がするのでアウトプットしておく ちなみにどこまでいってもなるべくClickなどの操作をせずにページ内容を読み取れるのがベターだと思っている あと、REPLにかん…

じぶん Release Notes (ver 0.33.8)

swfz (ver 0.33.8) がリリースされました、更新内容は次のとおりです 技術 やったこと BigQuery(Dataform) pocketのAPI+BigQuery+Dataportalで可視化 SearchConsoleの被リンク項目を一括で取得できるようなスクリプトを書いて収集→Dataformで整形 Twitterの…

jqで曜日判定をする

jqで土日を判定するみたいなことができる isoの日付からfromdateでunixタイムスタンプへ変換しそれをgmtimeへ渡すと日時に関する配列が返ってくる その中に曜日の情報も含まれている よくある2020-08-01のような形式のテキストを判定してみる $ echo '{"star…

jqで複数ハッシュのmergeをする

RubyでいうHash.merge的な処理をjqでもやりたいとき 集計結果をいくつかのファイルに出力しておき最後にサマリーとしてJSONにまとめたいときなどに使う 書いていて感じたけどあまりこういう機会はないかもしれない… 01.json { "hoge": 1, "fuga": 2 } 02.jso…

WSLからWindowsへ通知を送る

GitHub CLIを使ってターミナルでGitHub Actionsを操作する - GitHubブログ github.blog GitHubのCLIにworkflow,runが増えた記事を見て 記事の中でnotify-sendを用いてworkflowが終わったらデスクトップ通知するみたいなのを見た そういえばworkflow以外にも…

DataformでAPIからパイプラインを実行する

Dataformで個人プロジェクトのデータ整形を行ってみた そのときにAPIでパイプラインを実行したときのメモ REST API ドキュメントはこちら Use the REST API | Dataform docs.dataform.co まだREST API自体がBetaらしく今の段階ではプロダクション導入とかは…

じぶん Release Notes (ver 0.33.7)

swfz (ver 0.33.7) がリリースされました、更新内容は次のとおりです 技術 やったこと GCP Workflows CloudFunctions CloudLogging Pub/Sub これらを用いてエラーログからSlack通知するみたいなことをした Dataform 個人的にやっているTogglの集計作業をData…

GCPのCloud WorkflowsとCloud SchedulerでTogglの前日読書時間を自動でPixelaに記録する

今回の記事までにいくつかCloud Workflowsの記事を書いた GCPのCloud Workflowsを試す - notebook swfz.hatenablog.com Cloud Workflowsでランタイム引数のデフォルト値を設定する - notebook swfz.hatenablog.com これらで行ったことをもとに今回はテーマを…

CloudLoggingに流れたログをSlack通知する

すでにいろいろと記事も出ているが自分で触って試してみたため残しておく やったことはLogging -> 集約シンク -> Pub/Sub -> Functions -> Slack でWARNING以上のログをSlackに通知する 集約シンク AWSでいうCloudWatchLogsのロググループに対するkinesis da…

Cloud Workflowsでランタイム引数のデフォルト値を設定する

実行時に引数を渡すときにデフォルト値を設定したい というよくあるパターンをWorkflowsで行えるか試してみた 今回は失敗したパターンも書きながら流れを追って書いていく 結論だけ知りたい方は最後の方を見てください ランタイム引数の扱い Workflowsでラン…

GCPのCloud Workflowsを試す

ちょうど気になっていたので使ってみる Workflows ワークフロー | Google Cloud cloud.google.com サーバレスでHTTPベースのAPIサービスを組み合わせてワークフローを定義できる 外部APIも対応しているので色々できることはありそう 目次 こんな感じで試して…

じぶん Release Notes (ver 0.33.6)

swfz (ver 0.33.6) がリリースされました、更新内容は次のとおりです 技術 やったこと GCP CloudFunctions Workflows Sentry とりあえずGatsbyのブログと本ブログに入れてみた イベント 3月は次のイベントに参加した(視聴) Tech x Marketing #エンジニアリン…

dateコマンドで月初、月末、先週の期間を出力する

バッチ処理などの期間指定でよく遭遇するこの手の期間指定 必要になるたび調べていたのでよく使うものをまとめた 今 $ date Wed Mar 17 02:51:47 JST 2021 前日起算の月末 $ date -d "$(date -d "1 day ago 1 month" +"%Y-%m-01") 1 days ago" Wed Mar 31 00…

dummy-jsonを使ってダミーデータを生成する

dummy-jsonというnodeのライブラリを使ってみたのでメモ dummy-json BigQueryなどサンプルのJSONを作ってロードしたいときや、カラムの情報をある程度コントロールしてサンプル作りたいとき または、モック用にAPIレスポンスを適当に生成したいとき Rubyでい…

BigQueryで連続した日付のデータを生成して集計データと突き合わせる

スクリプティングを使ってみたくて題材探してみようと思ったがこのケースならSQL組み合わせるだけで良かった SQL WITH # 歯抜けサンプルデータの用意 sample_data AS( SELECT * FROM UNNEST(ARRAY<STRUCT<d DATE, item STRING, sales INT64>> [ ("2020-10-04", "hoge", 100), ("2020-10-19", "fuga", 5</struct<d>…

じぶん Release Notes (ver 0.33.5)

swfz (ver 0.33.5) がリリースされました、更新内容は次のとおりです 技術 やったこと GCP BigQuery CloudSQL CloudFunctions CloudTasks WSL2 WSL2に移行した Docker含め動かせる状態になった MySQL イベント 2月は次のイベントに参加した(視聴) Developers…

sqlparseを使い特定のSQLを抽出する

クエリログの中から特定のクエリを取り出したいという状況になったことがあったのでその際のメモ 今回はsqlparseというライブラリを使った sqlparse Python製のSQLパース用のライブラリ、パースだけでなくフォーマットなども行える andialbrecht/sqlparse: A…