- 投稿日:2020-07-04T22:40:56+09:00
fatal error: newproc: function arguments too large for new goroutine
- 投稿日:2020-07-04T20:12:35+09:00
【Golang】GCP用のフォーマットでログ出力する
概要
GCPにはログ管理用プロダクトCloud Logging(旧Stackdriver Logging)があります。
GKEやCloud Runを使う場合、標準出力で出したログを自動で収集してくれてとても便利です。これだけでも全然嬉しいのですが、GCPの定義しているフォーマットで構造化したログを出力すればもう少しいい感じに出来るので試してみます。
GCPのログについて
https://cloud.google.com/logging/docs/agent/configuration#special-fields
GCPのfluentdではこの「構造化ペイロード」のJSONフォーマットで出力すれば、
Cloud Loggingのログ構造であるLogEntryに対応付けてくれます。LogEntry
https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry
今回は以下3点のfieldを意識します。
severity
- ログレベル
- INFOやERROR、FATALなどが定義してある
- Cloud Logging上ではUIでログレベルによる絞り込みが容易に可能
timestamp
- おそらく
timestamp
を定義していない場合はfluentdがログを検出したタイミングやCloud LoggingにLogEntryが登録されたタイミングのログがtimestampに登録されるはずtimestamp
を出力に含めておけばログ出力したタイミングを残せるjsonPayload
- ログ出力したいメッセージ
- 前途の構造化ペイロードの
message
に対応付けられるHttpRequest
https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest
HTTPのリクエストはこの構造で出力するとCloud Loggingでかなりいい感じに表示してくれます。Error Reporting
https://cloud.google.com/error-reporting
GCPではリアルタイムにエラーを管理するのにError Reportingの使用を推奨しています。
エラー発生時の通知はもちろん、エラー発生頻度や発生したコード位置なども表示してくれます。
このError Reportingへのエラー報告はクライアントライブラリを使う方法がありますが、
特定フォーマットのログを標準出力しCloud Logging経由で報告する方法もあります。
https://cloud.google.com/error-reporting/docs/formatting-error-messages特定フォーマットは以下の
ReportedErrorEvent
になります。
https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.events/report?hl=ja#ReportedErrorEventただし、埋めるところが多いので...
@type
fieldでtype.googleapis.com/google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent
をvalueに持ったJSONフォーマットのログを出力することでもOKです。
https://cloud.google.com/error-reporting/docs/formatting-error-messages#@type実際に出力
logrusとechoをカスタマイズしてみる
コード
https://github.com/suecideTech/sample-codes/tree/master/go-gcp-logging/logrusLogging
severity
によるログマークの違い、HttpRequestによるリクエスト情報の可視化が出来ているかなと思います。zap(zapdriver)を使ってみる
爆速ロギングパッケージzapをcloud logging用にカスタマイズしたパッケージ、
zapdriver
が既にあるためそれを利用してみます。
https://github.com/blendle/zapdriverコード
https://github.com/suecideTech/sample-codes/tree/master/go-gcp-logging/zapLoggingちなみに
zapdriver
はちゃんとReportedErrorEvent
でErrorReporting報告をしているみたいです。所感
クラウドではログ管理や解析ツールが揃っているので...
何も考えずにただの文字列を出力しちゃうよりは、早い段階でログ設計をして構造化したログを出したほうがいいのかなと感じました。参考にした記事
https://future-architect.github.io/articles/20200205/
https://note.com/_yoshioka/n/n513cbf9fd5ad
https://k11i.biz/blog/2018/10/03/stackdriver-logging-friendly-layout-java/
- 投稿日:2020-07-04T12:17:09+09:00
【MacOS】Golangで自作のパッケージをインポートしてHello Worldする
自作のパッケージをインポートするのにハマったのでメモ
Go: v1.14.4
goenv: v2.0.0beta11最初のディレクトリ構成
Users └── hoge ← ここは自分のユーザー名(ここではhogeとする) └── go └── 1.14.4 └── src └── github.com └── username ← ここは自分のGithubのユーザー名(ここではusernameとする。ローカルで開発する分にはとりあえずなんでもいいのかな?) └── app ├── src | ├── main.go ← このファイルの中からhello/say.goの関数を呼び出したい | ├── hello | └── say.go └── .go-version ←(ターミナルでapp直下に移動して「goenv local 1.14.4」を実行しておくこと)
go mod init <任意の名前>でモジュールの初期化を行う
$ cd /Users/hoge/go/1.14.4/src/github.com/username/app/src $ go mod init app_samplego.modファイルができる
Users └── hoge └── go └── 1.14.4 └── src └── github.com └── username └── app ├── src | ├── main.go | ├── hello | | └── say.go | └── go.mod ← ## src直下でgo mod initしたので、ココにできる | └── .go-version
中身
/Users/hoge/go/1.14.4/src/github.com/username/app/src/go.modmodule app go 1.14main.goからhello/say.goをインポート
app/src/hello/say.gopackage hello import( "fmt" ) func SayHello() { fmt.Print("Hello World!!!") }app/src/main.gopackage main import ( "app_sample/hello" // インポート ) func main() { hello.SayHello() }実行
$ go run src/main.go Hello World!!!
呼び出せてはいるものの、import文にエラーがついてしまうのはvscodeの設定かなあ(; ω ;)
【オマケ】goenv導入編
goenvをbrewインストール
$ brew update $ brew install --HEAD goenv環境変数追記
$ echo 'eval "$(goenv init -)"' >> ~/.bash_profile反映を忘れずに
$ source ~/.bash_profilebrewインストールしたgoenvを最新バージョンに更新する
$ brew upgrade --fetch-HEAD goenvGoインストール
$ goenv install 1.14.4仮想環境適用
プロジェクトルートまで移動して、goenv localで仮想環境を適用する
$ cd /path/to/プロジェクトルート (例: /User/hoge/go/1.14.4/src/github.com/username/app) $ goenv local 1.14.4
- 投稿日:2020-07-04T05:10:39+09:00
名古屋で定期開催されいている技術イベント・勉強会
はじめに
この度、名古屋を離れ、関東へ引っ越すことになりました。名古屋(東海圏)エンジニアを増やして地元を盛り上げていくという夢が叶わなくなってしまいました。
名古屋でもエンジニアコミュニティを盛り上げようと頑張っている企業さんや、エンジニアさんがたくさんいることを多くの人に共有したくこの記事を書いています。
名古屋へのUターンを考えていたり、リモートができるようになり都心を離れようかなぁと考えている人は、ぜひ次の拠点として名古屋を選択に入れる参考にしてみてください。
定期開催編
以下、定期開催されている勉強会です。
フロントエンドもくもく会
主催:Nagoya Frontend User Group
概要:フロントエンドを中心にしたもくもく会。名古屋の企業・団体からの会場提供を受けている。名古屋アジャイル勉強会
概要:アジャイルの考え方や方法を体験的に学び、職場で活かすことを応援する、誰でも参加できるグループ。
Mobile Act
主催:フェンリル
概要:モバイルアプリ開発関連の情報共有や参加者同士の交流を目的とした勉強会。Nagoya.Swift+
概要:技術者としての好奇心や向上心を満たすために技術的な挑戦をするふりをして遊びます。
nagoya.go
概要:名古屋のGoコミュニティ。もくもく会やGo勉強会が開催されている。
OthloTech
主催:OthloTech
概要:OthloTech<オスロテック>は東海圏の学生エンジニア・デザイナーによる学校を超えたコミュニティ。 月に1〜2回、学生限定の勉強会やハッカソンを開催。MISO MOKU
主催:Misoca Developer Meetup
概要:毎週ベースで行われていた、エンジニア・デザイナー向けのもくもく会。弥生株式会社と合併したため、2020年7月以降の開催は未定。番外編
開催頻度が低いけど大規模だったり、面白い試みをしているイベントを書いていきます。
NGK2020S
概要:NGK2020Sは、東海地方IT系コミュニティ合同の大新年会。普段から東海地方の勉強会に参加している人、今まで参加したことがない人、他地域の人など、 誰にとっても、さまざまなコミュニティとつながりを広げ、深める良い機会になることを目指すイベント。
みそかつウェブ
概要:名古屋という土地を生かし、エンジニア&デザイナーコミュニティを盛り上げるため、 IT業界に関わる人同士の交流の場として似た境遇の仲間を探したり、相談できる友人を作ったりできるコミュニティです。
*イベント情報の概要はリンクページから一部引用させていただいています。
最後に
思いついたイベントをばっと書いているので、どんどん追記していきます。他もあるよ~みたいなご意見ありましたら是非いただけますと嬉しいです。
コミュニティも盛り上がっているので、ぜひ色々参加してみてください。
割とアットホームな土地(外からはそう思われていないかもしれないが)なので、いいですよ~。
- 投稿日:2020-07-04T05:10:39+09:00
名古屋で開催されている技術イベント・勉強会
はじめに
この度、名古屋を離れ、関東へ引っ越すことになりました。名古屋(東海圏)エンジニアを増やして地元を盛り上げていくという夢が叶わなくなってしまいました。
名古屋でもエンジニアコミュニティを盛り上げようと頑張っている企業さんや、エンジニアさんがたくさんいることを多くの人に共有したくこの記事を書いています。
名古屋へのUターンを考えていたり、リモートができるようになり都心を離れようかなぁと考えている人は、ぜひ次の拠点として名古屋を選択に入れる参考にしてみてください。
*以下イベント情報の概要はリンクページから一部引用させていただいています。
定期開催編
以下、定期開催されている勉強会です。
Yahoo! JAPAN Nagoya
主催:Yahoo! JAPAN
概要:ヤフー株式会社の名古屋オフィスで開催するクリエイター向け勉強会コミュニティ。 多種多様なクリエイター同士が交流できる場所として、開発スキルやノウハウについて学びながら、社内外のクリエイターがアウトプット/インプットできる機会になるべく、2019年3月にスタート。Mobile Act
主催:フェンリル
概要:モバイルアプリ開発関連の情報共有や参加者同士の交流を目的とした勉強会。OthloTech
主催:OthloTech
概要:OthloTech<オスロテック>は東海圏の学生エンジニア・デザイナーによる学校を超えたコミュニティ。 月に1〜2回、学生限定の勉強会やハッカソンを開催。nagoya.go
概要:名古屋のGoコミュニティ。もくもく会やGo勉強会が開催されている。
Nagoya.php
概要:名古屋のPHPユーザーのコミュニティで、隔月で勉強会をやっています。(現在コロナ
のため休止中)Nagoya.unity
概要:名古屋を中心に活動を行うUnityユーザのコミュニティで、主に勉強会などの開催を行っています。
Nagoya.Swift+
概要:技術者としての好奇心や向上心を満たすために技術的な挑戦をするふりをして遊びます。
よちよちAndroidサンデープログラミングの会
主催:よちよちAndroid名古屋支部
概要:趣味でAndroidアプリを開発している(これから始める)初心者の方たちが、近所のカフェなどに集まって各々アプリ開発をし、分からないことがあれば、その場で他の参加者に尋ねて解決しようという、ゆるいオフラインコミュニティ(もくもく会)。JAWS-UG名古屋
主催:JAWS-UG名古屋支部
概要:Amazon Web Services(AWS)のユーザグループ、JAWS-UGの名古屋支部のイベント。
AWSに興味があるんだけど周りに知ってる人がいない、がっつり勉強したい!という人たちが集い、一緒に勉強する場を企画。フロントエンドもくもく会
主催:Nagoya Frontend User Group
概要:フロントエンドを中心にしたもくもく会。名古屋の企業・団体からの会場提供を受けている。MISO MOKU
主催:Misoca Developer Meetup
概要:毎週ベースで行われていた、エンジニア・デザイナー向けのもくもく会。弥生株式会社と合併したため、2020年7月以降の開催は未定。OWASP Nagoya
主催:OWASP Nagoya Chapter
概要:Webをはじめとするソフトウェアのセキュリティ環境の現状、またセキュアなソフトウェア開発を促進する技術・プロセスに関する情報共有と普及啓発を目的としたプロフェッショナルの集まる、オープンソース・ソフトウェアコミュニティ。Center CLR
概要:Center CLRは中部圏で活動する、.NET, C#, F#, ASP.NET, IoT, Microsoft Azureなどの技術を扱うコミュニティ。
機械学習 名古屋
概要:「機械学習を勉強したい!でも難しそう…」「勉強を始めた!でも挫折しそう…」「仲間が欲しい…」そういった仲間のための、「使える」機械学習を「基本から」勉強していこう! という勉強会。
名古屋CV・PRML勉強会
概要:名古屋で開催しているコンピュータビジョンに関する勉強会。
Code for AICHI
概要:愛知県で市民の課題を考え、テクノロジーで解決に導くことを目指した団体。
Qt 勉強会
主催:日本Qtユーザー会
概要:クロスプラットフォームのアプリケーション開発フレームワーク Qt で色々なものを開発しながら Qt の様々な機能を学んでいく勉強会。xR Tech Nagoya
概要:xR Tech Nagoyaは、「VR / AR / MRの最新情報、イベント、知見の共有」「名古屋にいる同じ興味を持った人達との出会い」「VR機器を用いての体験会、ハンズオン」「自他が取り掛かる作業等の成果発表」などの体験が得られるイベント。
PMI日本支部 中部ブランチ
概要:PMI日本支部 中部ブランチ(PMIJ中部)は、名古屋を拠点に活動する、プロジェクト・マネジメントのコミュニティ。
名古屋ギークバー
概要:技術的なものから、アナログゲーム、LT大会、生ハムを食べるなど、幅広くイベントを開催され、名古屋のギークな人達に会える。
名古屋アジャイル勉強会
概要:アジャイルの考え方や方法を体験的に学び、職場で活かすことを応援する、誰でも参加できるグループ。
番外編
開催頻度が低いけど大規模だったり、面白い試みをしているイベントを書いていきます。
NGK(NGK2020S)
概要:NGKは、東海地方IT系コミュニティの合同懇親会(2020年は新年会)。普段から東海地方の勉強会に参加している人、今まで参加したことがない人、他地域の人など、 誰にとっても、さまざまなコミュニティとつながりを広げ、深める良い機会になることを目指すイベント。
【中の人註:2020年は新年会でしたが、それまでは忘年会イベントが多かったです → NGK2018B, NGK2017B, …】
みそかつウェブ
概要:名古屋という土地を生かし、エンジニア&デザイナーコミュニティを盛り上げるため、 IT業界に関わる人同士の交流の場として似た境遇の仲間を探したり、相談できる友人を作ったりできるコミュニティです。
名古屋Ruby会議
概要:名古屋で行われる地域Ruby会議
オープンソースカンファレンス Nagoya
概要:オープンソースの今を伝える、入場無料のイベント。エンジニアとして活躍している社会人から、テクノロジーを学ぶ学生さんまで、幅広い層の方が参加。
最後に
思いついたイベントをばっと書いているので、どんどん追記していきます。他もあるよ~みたいなご意見ありましたら是非いただけますと嬉しいです。
コミュニティも盛り上がっているので、ぜひ色々参加してみてください。
割とアットホームな土地(外からはそう思われていないかもしれないが)なので、いいですよ~。
- 投稿日:2020-07-04T05:10:39+09:00
名古屋で開催されいている技術イベント・勉強会
はじめに
この度、名古屋を離れ、関東へ引っ越すことになりました。名古屋(東海圏)エンジニアを増やして地元を盛り上げていくという夢が叶わなくなってしまいました。
名古屋でもエンジニアコミュニティを盛り上げようと頑張っている企業さんや、エンジニアさんがたくさんいることを多くの人に共有したくこの記事を書いています。
名古屋へのUターンを考えていたり、リモートができるようになり都心を離れようかなぁと考えている人は、ぜひ次の拠点として名古屋を選択に入れる参考にしてみてください。
*以下イベント情報の概要はリンクページから一部引用させていただいています。
定期開催編
以下、定期開催されている勉強会です。
Yahoo! JAPAN Nagoya
主催:Yahoo! JAPAN
概要:ヤフー株式会社の名古屋オフィスで開催するクリエイター向け勉強会コミュニティ。 多種多様なクリエイター同士が交流できる場所として、開発スキルやノウハウについて学びながら、社内外のクリエイターがアウトプット/インプットできる機会になるべく、2019年3月にスタート。フロントエンドもくもく会
主催:Nagoya Frontend User Group
概要:フロントエンドを中心にしたもくもく会。名古屋の企業・団体からの会場提供を受けている。名古屋アジャイル勉強会
概要:アジャイルの考え方や方法を体験的に学び、職場で活かすことを応援する、誰でも参加できるグループ。
Mobile Act
主催:フェンリル
概要:モバイルアプリ開発関連の情報共有や参加者同士の交流を目的とした勉強会。Nagoya.Swift+
概要:技術者としての好奇心や向上心を満たすために技術的な挑戦をするふりをして遊びます。
nagoya.go
概要:名古屋のGoコミュニティ。もくもく会やGo勉強会が開催されている。
OthloTech
主催:OthloTech
概要:OthloTech<オスロテック>は東海圏の学生エンジニア・デザイナーによる学校を超えたコミュニティ。 月に1〜2回、学生限定の勉強会やハッカソンを開催。JAWS-UG名古屋
主催:JAWS-UG名古屋支部
概要:Amazon Web Services(AWS)のユーザグループ、JAWS-UGの名古屋支部のイベント。
AWSに興味があるんだけど周りに知ってる人がいない、がっつり勉強したい!という人たちが集い、一緒に勉強する場を企画。MISO MOKU
主催:Misoca Developer Meetup
概要:毎週ベースで行われていた、エンジニア・デザイナー向けのもくもく会。弥生株式会社と合併したため、2020年7月以降の開催は未定。Nagoya.unity
概要:名古屋を中心に活動を行うUnityユーザのコミュニティで、主に勉強会などの開催を行っています。
OWASP Nagoya
主催:OWASP Nagoya Chapter
概要:Webをはじめとするソフトウェアのセキュリティ環境の現状、またセキュアなソフトウェア開発を促進する技術・プロセスに関する情報共有と普及啓発を目的としたプロフェッショナルの集まる、オープンソース・ソフトウェアコミュニティ。名古屋ギークバー
概要:技術的なものから、アナログゲーム、LT大会、生ハムを食べるなど、幅広くイベントを開催され、名古屋のギークな人達に会える。
Nagoya.php
概要:名古屋のPHPユーザーのコミュニティで、隔月で勉強会をやっています。(現在コロナのため休止中)
番外編
開催頻度が低いけど大規模だったり、面白い試みをしているイベントを書いていきます。
NGK
概要:NGKは、東海地方IT系コミュニティ合同の大新年会。普段から東海地方の勉強会に参加している人、今まで参加したことがない人、他地域の人など、 誰にとっても、さまざまなコミュニティとつながりを広げ、深める良い機会になることを目指すイベント。
東海のエンジニアはみんな参加しているのではないか?と思うぐらい大規模なイベント。
みそかつウェブ
概要:名古屋という土地を生かし、エンジニア&デザイナーコミュニティを盛り上げるため、 IT業界に関わる人同士の交流の場として似た境遇の仲間を探したり、相談できる友人を作ったりできるコミュニティです。
最後に
思いついたイベントをばっと書いているので、どんどん追記していきます。他もあるよ~みたいなご意見ありましたら是非いただけますと嬉しいです。
コミュニティも盛り上がっているので、ぜひ色々参加してみてください。
割とアットホームな土地(外からはそう思われていないかもしれないが)なので、いいですよ~。