Live from Boston, Massachusetts, it's theCUBE, covering OpenStack Summit 2017, brought to you by the OpenStack Foundation, Red Hat, and additional ecosystem support. Hi, and welcome back to SiliconANGLE TV's production of theCUBE here at OpenStack Summit 2017 in Boston. I'm Stu Miniman, joined with my co-host for the week, John Troyer. As you can see behind us, the day two keynote's letting out. John, it's always interesting to look at these shows. They had some demos that were awesome. Couple of demos where the demo gods were not smiling on them. They had Edward Stoneman live via Q&A. They had Brian Stevens, who we're going to be talking with a little bit, the CTO of Google, who was on the early starts. For me, they're a little up and down. There's some of the vendor pitches in there.  So, a little bit uneven and disjointed, which has been some of the feedback you get about OpenStack in general over the last few years as to all those pieces come together. But, yeah, so what are your early thoughts coming out of the day two keynote? Well, it was definitely a keynote focused at the OpenStack community. We started off with Open Source and talking about the importance of Open Source, which is a little bit odd because everyone here knows that. I did like the message that OpenStack was composed of different projects that it was a piece of the puzzle, not the whole puzzle. You and I both noted VMware Scott Lowe tweeted, it's good to see the OpenStack Foundation talking about being a part of the overall solution, not the overall solution. I mean, as one example, they mentioned using EtsyD, which is a distributed key value store, instead of writing their own. EtsyD powers Kubernetes. You would be insane in 2017 to rewrite a distributed key value store at this point because it's just out there, it's mature. OpenStack has been around for seven years. There's been a lot of ecosystem grown up around them. Yeah, yeah, a couple of pieces on that. One is there was a message about like, oh, I can now take the individual components of OpenStack. I could actually do that before. I've noted, I've talked to a number of software companies that when you dig down into what they're doing, oh, what do you know? There's Cinder or there's something in there just as when I use AWS, I can use some of the individual components. Same things with OpenStack. It's not a monolith. There are the individual pieces, but they're highlighting that a little bit more. They're saying we can use some of the pieces. The other thing on the open source in general, they noted that like in the artificial intelligence machine learning space, like everyone that you see is using open source. Everything from Google and TensorFlow is one that can highlight it a lot. Amazon made a big push at their show about what they're doing with some of the machine learning. I can't remember right now the program on there, but right in some of these emerging spaces, open source is the de facto way to do that. We had in one of the conversations we had yesterday with one of the Cisco Distinguished Engineers, used to be standards, now open source really drives a lot of that. I actually got a quick conversation with Martín Casado who had worked on a lot of open source things before VMware acquired him, and now is that Andreessen Horowitz looking at all the open source models. Unfortunately, Martín had enough time to come on the program, but we've had him on many times. I have a question. The message today of being part of an ecosystem and being a componentized open source set of projects, does that detract or add to this conversation around OpenStack Core versus BigTent? I think BigTent is dying. We talked to a number of the participants yesterday and said it was a little over boned. It does not mean that some pieces might still get worked on, but it's the core components and when we dug into the survey, it's how many of the pieces do we really need? We want to make sure the core works. I can have that distribution if I want to do what is OpenStack. When they highlighted those components, it wasn't 27 different projects there. I think it was a handful of like six that were there. So Swift and Cinder, some interesting cool little graphics.  It's like I wouldn't want to run into him in a cartoon alley, but. Yeah, I did tweet, yeah, there was an angry bear, kind of a poisonous spider and a horse is behind. So I'm not quite sure about the marketing there, but. What is the message they're sending? But there's some fun. We've got Mark Collier and Jonathan Bryce coming on soon. We can ask them, was this the community and are there just some people that have a funny sense of humor and this is how they show it? I did love the demos in today's talk. I especially like the, they spun up live on stage, 15 from scratch OpenStack Clouds and then had them all join a Cockroach DB cluster. I thought that was kind of cool and amazing. Yeah, absolutely. You talk about that hybrid multi-cloud world showing it in reality how that works, pretty neat. And you can actually see some applicability as to how that would fit new customer environment and kudos to all the people.  I mean, they're up there on stage doing it. The wifi all seemed to work fine. That wasn't the challenge, but yeah, it was pretty cool. Well, again, trying to give the message that OpenStack is indeed not a science project that it's live, that it's configurable, that it's stable, that it's installable, and I think that kind of message of stability and configurability and non-simplicity maybe is one of the ones they're trying to hit here today.  We throw out the term open a bunch and I'm watching some of the other industry things and they say open when they mean choice as opposed to open as in open source. So, you know, we see Google here and Google talks about open. So many things that are now open source, a lot of times started out as a Google white paper where something, as we all say, we're all using open source what Google was using 10 years ago, right? You know, MapReduce and Borg and Spanner and some of those things eventually get their way out. I've got some viewpoints on this, but love to get your take first, yeah. Well, I mean, definitely it was an homage to open source this morning. In some ways it was kind of a dig at AWS and Amazon which uses a lot of open source tools but does not share back. You know, the open stack is clearly open source and they were emphasizing that. I don't know, what are your thoughts, Tim? Yeah, it's customers now, it used to be, you said open source, you know, if we go back 10, 15 years and it was like, ooh, no. Now, open source is a lot of times a plus, a something that they're asking for. Many companies are contributing and engaging in that. Open stack is a great example of companies that have participated in helping to build open stack. That being said, I always go to, what's the problem to be solved? What's the solution that solves it? And if it happens to be a little bit pre-standard or not 100% open source, most companies are fine with that. We were at Red Hat Summit last week with theCUBE though and everything they do is 100% open source. They're building their business. Their customers are really happy. So, open source still has a little bit of a double-edged sword as to how you do it, but open source, absolutely, there's no question of if open source, it's how much and to what extent and where it fits. Sure, there is an ecosystem of providers here. There's always lock-in when you make a technical choice. But in this case, I think they've successfully, we're trying to show off that there are, there is a choice of clouds. There is an open, a set of open source components that you can mix and match. And so that actually ties in very well to the interview with Edward Snowden. Yeah, absolutely, yeah. It was, in the last point, Edward Snowden, towards the end, he said, fear is, I think the quote was, the most powerful weapon in the world today from a political statement was doing, fear and IT is a powerful weapon. We know that enterprise and inertia tend to go together. With my background in networking, I used to draw these timelines and say from when the time the standard was done to when the early majority adopt is oftentimes a decade. So the technology adoption, moving the operational, we know the people piece is always tough to do, moving my applications, we think people are definitely moving faster, but fear is definitely something that holds them back. What do you see, John? Sure, I think the through line of the whole morning was about choice and diversity. Edward Snowden talked about the centralization of information services like Facebook, Google, and Twitter, and I think by implication Amazon.  Yeah, so John, thanks for helping me wrap up day one. As always, we welcome our audience to please send us feedback. John and I are both pretty active on Twitter, very easy to get in touch with. We are at so many shows, if you check out SiliconANGLE TV, see where we're at. If we're not at a show that you think we should be at reach, there's contact information at the top. If there's guests that we should have on our program, we're always looking for feedback. Love to get, especially those end user stories talk about with interesting startups. So we've got two more days of live coverage. So for John and myself, stay with us and thanks as always for watching theCUBE.


What's up guys we're back with another epic video today. We're gonna be opening The scam box. So if you guys saw my video the other day, I'll pop it up right here We opened a resealed metal raiders original print So you guys can see it was in this box and out came these 24 packs which have the red banner I believe their legendary collection 2010 packs We're gonna open them up in this video and we're gonna see did we fully get scammed like are these packs weighed There are no hollows in here or did they just they resealed it and put actual regular packs in there from 2010 So we're gonna find out Obviously it's a scam either way because obviously we wanted to get original packs not 2010 packs But if there were hollows in here be kind of cool like imagine if we get fire pulls out of a resealed box It'd be kind of fun. So that's what we're gonna do today before that the giveaway I'll be giving away these three super ears This is an original print legend blue eyes trap hole and then we have to reprint cards or tribute to the doomed and to the world All you have to do like this video be subscribed. Let me know before you start watching the video Will we pull a hollow out of this? I really don't know. I'm thinking probably no But also there's a chance, you know at the time they probably weren't worth too much So they just threw them in you know, they might not have weighed him or anything Also, I don't even know how easy it is to weigh these. I've never done it before actually We we got to keep these in the in here because it's a scam box. We got to keep in the scam box All right, I'm gonna keep this off to the side. We're gonna open 24 metal raiders. I believe legendary collection 2010 packs We're gonna find out these were in the scam box. So let's see if we can pull something out of a scam box Oh, wait, we got a little en right here. So are these um, are these European? I don't know We're about to find out if there's anything in here. This should be interesting All right. Yeah, these are European packs. So they're not even North American These are European legendary collection I believe because as you see right here MRD dash E that means European sometimes there's an E in at the beginning and those are North American But they're in a specific range of time like 2004 to I think the latest ones are 2010 But like not for the originals. They never had print in 2000. It doesn't know before 2010 I don't know seal scorpion. Let's just go into it. Can we pull a European? Gate guardian, I don't know bistro butcher and Elegant egotist. Okay Guys, I just want to just think about this. Okay. First of all, these are super slick because they're European They sent us a resealed box, but they forgot That you can get the picanha moth in here Did they scale out the picanha moths? I don't know. We're gonna find out. They could have scaled out picanha moths Who knows we're gonna find out If we get a picanha moth, it's a joke song them because obviously that is the most powerful card besides chick a lot Tastes all right, we got the baby dragon Leo gun the immortal of thunder mega thunder ball fake trap and The deep sea shark Okay, so far they have scaled out the picanha moths. We know that for sure All right, we're starting over to There's no sort of ratios at all like with these kind of legendary collection packs Even if they're not scaled, there's no sort of ratios. We'll find out though Did they scale them? I don't know. I'll be a little bit surprised if there's a hollow in here But you never know we got to prevent rat doma the angel of silence lava battle guard cheerful coffin and A mask of darkness blackland fire direct larva moth the big brother and armored zombie. They got that labyrinth tank That's really cool. Okay next pack. We have not pulled a hollow so far But maybe we will who knows who knows I believe guys. I believe that we will pull something out of the scan box if it was resealed a while back think there's a good chance We have the feral imp Ground attacker bergamoth wait Bergoth not bergamoth. I don't know what that moth that that's what it was crawling dragon ring of magnetism and Another elegant ego test. Okay. Oh The foil because it's because it's European is after the rare mirror force in the scan box Check that out. Okay. These are not scaled. They did just throw regular legendary collection Doesn't it backs in here for well, not regular European Mirror force a little bit of a ding up there, but that's okay. That's really cool. That looks good These European ones look sweet Mirror force. Yes, so we got our some epic packs on our hands So if you guys said that we will have hollows in this opening, you're right. Congrats. Pat yourself on the back Good job guys. Well done. We've got an ultra rare. Now. How many foils will we pull? All right Let's see Ultra rare. That's pretty cool. That's pretty cool and it comes after the rare. So that's interesting We got a new it's alright. You guys know what this means. I don't know if you guys knew sort of deep-seated impris judge German Fection Magician of faith that's a good one and the battle steer 1,805 star What a monster. All right next pack of the scan box We've already gotten a mirror force out of the scan box. So it's very weird. It's just weird. I'm just weirded out by this Here we go. Doma the angel of silence Look at the Yadokura That was not how you pronounce that harpy lady Princess of Sarugi. Wait. Do we have something? Oh? Heavy Storm super rare Very nice. Okay. We got a trance. There's a the tree beard musician king when dragon and arm well so far Not a single pocaneo moth. I think these were scaled. They were scaled for pocaneo moths They said no pocaneo moth for you. You're not getting one. Here we go guys. This is this is wacky. This is fun Very fun. By the way, I did buy I bought these loose packs from the guy Who sent me the box? So I paid him something for him not not as much as I was gonna pay for the sealed box But I did pay him pump King came ghosts bring them magnetism Princess of Sarugi Time wizard ultra rare the best scam box of all time. Oh my goodness This is crazy. I'm trying to think what do we even name this video opening the best scam box of all time Like I mean this is amazing time wizard. We got scammed into getting a mirror force in a time The pocaneo moth has made it and this is is this the first European one I have I don't know if I have an e version Yes Let's go This box is loaded next pack. We already have two ultra rares and a super rare and we've only opened like eight packs or something I don't even know this is crazy. We're having some pretty good luck so far Will we pull gate guardian out of this thing? Oh, okay, let's take it Dome of the angel of silence ground attacker burgoth Sort of deep-seated Empress judge And the little chimera larva moth And jellyfish on to the next pack. So what I've noticed these uh the back card for these often has a ding on the corner So I don't know what to do with that is I think that's I don't know there must be like a european print thing but the rest of the print seems pretty good The backs are a little cloudy though. Okay, they're not. Oh wait. Yeah, there it is You guys see that those ding that ding on the very back card All right, the bistro butcher Insect soldier of the sky steel scorpion crawling dragon mass sorcerer and the hunter spider water moth extended wisdom. Yeah, so uh, thank you scammer for at least putting some hollows in there So, uh, that's good at least Unfortunately, these are still a scammer. So we're still not happy with them because Somebody lost a lot of money on that wax. I don't know what the guy paid for him He may have actually who knows if he if he bought these a long time ago He might have actually made his money back for what I paid him. All right. Mr. Corseman the immortal thunder killer needle cannon soldier Oh Ruckson special into the gate guardian european check out that Oh, that looks good He's just near to that look amazing That looks amazing Wow, that foil looks incredible. Oh, we're okay. We're struggling here. Wow Gate guardian guys. Look what we have already Check out what we've pulled in less than 12 packs from this scam box. That's not bad for a scam box Okay, that's not bad at all jellyfish next pack. Here we go We still this is like the 11 packs. That was 10 packs. We've already pulled all that stuff Okay Guilty of the d night. This is an insane box. This is weird blue and crown reoccution powered Dark elf. Okay. Wean dragon guardian fortress number one armored zombie Pale beast. I haven't seen him much. This is a huge set. There's like 140 something cards One of the biggest sets like I think the biggest original set Final pack on the right side of this scam box guys Here we go European print cards. This is cool ground attacker burgoth. We got the ring of magnetism empress judge germ infection shield and sword Heavy storm again What in the world? Five hollows on the right side. Let's go. That's where man. It's one of the best Super rare in terms of like playability. It's probably the best one Five hollows on the front of the front. I was gonna say front nine I just played golf. So now I'm really thinking in golf terms on the front nine Yeah, we got the front 12 packs and uh, we've opened them and we have five hollows Let's start on the back nine. Here we go. We got the killer needle Jewry goo. It's the first time seeing that illusionist faceless mage Rocco Grigrado number one star boy And the tainted wisdom tongyo and more infant All right, the picanha moss looking pretty rare one so far 11 packs left. Here we go Let's see what we can do We've already pulled gay guardian time wizard Um, what was the other one? Oh mirror force, right? I think I never pull mirror force. That's cool. Mega thunderball Rocco Grigrado number one prevent rat Great moth the grande And a suigen super rare with a gazelle.  That looks really good. These european foils look nice. I'm a big fan Next pack guys six foils already. That's like a box ratio. Basically minus. Well, we have a secret So it would be seven if you had a secret Here we go. We got the common area attack Love and battle guard cheerful coffin mookamooka Biscold dragon. Oh my goodness The best scam box of all time. Is it just me or is this literally like He's scant this dude scams someone and left in three ultras in a gate guardian like not a very good scammer Just saying not very good Also, you should never scam people. I'm just gonna I feel like I need to say that because this scam box is great, but It's just not cool. Yeah, I think it's kind of self-explanatory, but I mean when you take advantage of someone and you sell something that's not what they're expecting to get Kind of screwed up. So I'm just gonna just gonna throw that out there just in case you were wondering dream clown We got an electric lizard killer needle And the dark elf. Okay, Trent And kodakazi. All right, but I am glad that these packs have something in here. That's pretty cool That is pretty cool that they left some good stuff in here Because I think that fits my theory that these are an older Someone did say in the comments that they saw some of these up for sale like in 2016 So that would make sense if they were resealed like five six seven years ago When these were like really easy to obtain these legendary collection 2010 packs That would explain why they didn't scale them because they're really easy to get at the time We've got an ancient ancient elves at the first time and feral imp Protector of the throne. I think this is the first time we've seen these comments electric lizard and a blade fly bickery box What makes that a crashing dream clown? Okay genzo number seven before genzo himself very strange. Okay Also, by the way, if you guys did not see the legend of blue eyes box break yesterday check it out We opened in the unlimited original print 2002 booster box. It was crazy. It was pretty awesome All right guilty of the d night Insect soldier of the sky Pumpking the king ghosts crawling dragon Which of the black force that's a good rare and the armored zombie Check out that armor pretty good, huh? zero defense The man with armor that does nothing Next back. I don't know how many we have left maybe like six We are still pulling fire though. Can we pull? something else Feral lamp. Okay. We've seen these. Oh cheerful coffee Gigatech wolf. That's a cool one Duraigumo. That's a good one. Oh blade fly ruxen special Into the block attack. All right.  Just saying I'm just saying ruxen special has done some good stuff Next pack Here we go Let's pull something bit. We've already pulled so much maybe someone's skull. I don't know mystical lamp Rock over grotto. We got the disc magician rainbow flower. First time I've seen that Shadow ghoul. That's a cool rare and the flame service. That's man. There's so many cool cards in the set Lady de fe cousin moth And the pecanial moth that is amazing. That's a good pack. We will take that guys metal raiders the commons and rares are Unmatched from metal raiders so many awesome ones All right a few packs left. Here we go What can we pull we got the immortal of thunder Doma the angel of silence mega thunderball steel scorpion grande moth And the leg leg hull Leg hull it can attack directly though Rabbit horseman. That's a classic from the show. We saw that against uh with kibah used against joey All right next pack. We are on a little bit of a cold streak with these scam packs Oh, okay. We're struggling here We're struggling here Here we go cocoon of revolution where the pecanial moth becomes the grande moth Ryukishen powered bottom dweller blue winged crown Milus radiant Another time wizard. You got to be kidding me and guardian of labrador is very cool as well Another ultra rare for ultra rares in the scam box. Are you kidding me? Are you kidding me right now? This is insane These packs are so good All right, two packs left guys, uh, can we even ask for anything more than what we've already gotten? This is like probably my best metal raiders opening In terms of just like what we're getting We have a steel scorpion illusionist faceless mage protector of the thorough electrolyzor Oh ruckson special mask of darkness. We ruined it I told you guys these european packs are tough. They're tough They're slick All right final pack from the scam box. We've already pulled four ultra rares and a secret rare And then a few I don't know how many supers like four maybe only three I don't know what else we can ask for but we will take any foils. That'd be awesome Maybe a thousand dragon because they're a legendary collection. You can pull both Here we go mortal thunder. No ruckson special feral imp The bistro butcher Gigatech wolf Dark elf hit the like button for luck guys. Here we go Armored zombie the man himself. Okay Pretty amazing opening though It was insane luck. All right guys from the scam box. We got two pecanium off only two. That's not very much Legendary rare cards, of course, which of the black forest magician of faith We got a sue agent two heavy storm weird Mirror force ultra rare awesome two time wizards insane. That is such a cool card Beast skull dragon And gate guardian guys these were in a resealed scam box You've got to be kidding me. Those pulls are absolutely amazing If you guys enjoyed the video make sure to like the video subscribe for more epic content We're getting close to 77 000 once we get there. Who knows maybe we'll get to 100 one day. Yeah, they're pretty cool I'm brainstorming ideas by the way I want to mention again if you do want to send me something for the 100k special You guys can mess with me on instagram email me something like that That would be pretty cool because then we can make it even more epic and that's over this video I hope you guys enjoyed it peace


I mean, STEM? What? It doesn't have anything to do with anything. It doesn't even make... It's not... There's no sort of resonance. There's no poetry. So if I were the king of the world, I would just give rid of that. And the problem is... Do you have a more poetic acronym you would substitute? Rigor. How about rigor? I mean, I think the problem fundamentally is that this country has a serious problem in math and science. And it runs through every demographic, every socioeconomic level. It runs through every state in the country with a possible exception. And we can talk more about this of Massachusetts and Minnesota. But it is a serious lack of rigor that starts very early on in schooling. And it's not just science, and it's better in reading, but it's a fundamental problem. So I think there's a tendency to kind of stovepipe these things that's not particularly creative or helpful. I spent a year visiting the top performing countries in the world on education outcomes and spending a lot of time with kids in those countries to try to get the texture of life in these countries. Because we know a lot. We actually have a lot of good, relatively good data now on education outcomes around the world that we didn't have 10 years ago. And it's very striking, and it doesn't correlate strongly with expenditure and all those things you already probably know. But anyway, one of the things that you just notice immediately is how low-tech the classrooms are in the top performing countries in the world. I mean, I have been in some terrible schools in the United States, and they all have smart boards, which are basically digital electronic whiteboards. So I think that there's a number of reasons for that, and we don't need to go too far down that rat hole. One reason would be just the relatively aggressive vendors that go into our school system. And also, it is something that is easy to see, and it's sort of like the reason Homeland Security tends to focus on gear Homeland Security spending is like about hazmat suits and things that aren't really less so training to use the hazmat suits. So these are things that are easy to quantify. We spend a ton of money on it. There isn't good money comparing how much we spend internationally per student on technology compared to other countries, which is frustrating. But anecdotally, everyone who has visited many of these countries tends to see this trend line, particularly if you don't visit the schools that the Korean Minister of Education takes you to. So if you visit the schools sort of on your own, you see very, very low-tech classrooms. And that's not to say I don't think there's an important role for technology, but I agree that it's not generally the role that it's taken in the U.S. I'm convinced that there is really a crisis in math and science, particularly the ability to think critically and solve problems in real life. Okay, so do I think we need to beat China? I think we do beat China.  This whole, you know, there's a lot of misleading information, a lot of confusion about this. Yes, Shanghai outperformed the rest of the world. That is not all of China.  Yes, but I think it's true that when American 15-year-olds are performing, you know, 24th in the world, 24th in the world on thinking critically in math, so solving real problems, right? And by the way, the U.S. does much better in reading on this same test. So I do think it's in that sense we are, and you see this, right? I mean, how many people have had small children in the U.S. education system at some point? And what I think you probably noticed very early on that reading is pushed with a sort of evangelical fervor, and then increasingly so because of No Child Left Behind and so forth. But math is like this thing that we are going to get to later. And that changes eventually, but even in the third grade, U.S. third graders are doing much easier math work than schools in the top performing countries in the world.


Hey, what's up everybody? So it's been quite a while since I've made a video. I've got lots of new subscribers since then. Finally crossed that thousand subscriber threshold. So thanks so much to everybody that's new and hopefully you'll enjoy some of the new stuff I've got coming pretty soon. So I think when I last left off I was working on some game dev. I was creating a new game in Unreal Engine and I made a lot of progress, created the inventory system, created mapping, all of this other stuff, a quest system and really enjoyed doing all of that and then I got to the point of what is this game, what does it actually do? And I realized that I really wasn't very good at that and I didn't really have any great ideas and the gameplay really wasn't fun so I really kind of came to the realization that my game sucked and that it wasn't very fun to work on anymore, that I had done all of the fun stuff that I wanted to do, build all of the back end mechanisms to make the game work. So I don't know, I struggled with that for quite a while. I didn't want to make just another shooting game where you were trying to shoot something or just another Minecraft type of crafting game. To be honest, I don't play a lot of games so probably I'm a terrible person to try to design a game but I sure had a lot of fun learning C++ in Unreal Engine and creating these back end systems but it's time to move on because so what am I going to do with that? I'm going to take the pieces that I had for that and the little bit of story that I had and evolve on that and create some short films and kind of build that world and still using some of the same assets and the set building pieces that I enjoyed about making the game. I'm just going to turn that into short film type stuff. So make sure you subscribe if you like that type of stuff. A lot more of that is coming to this channel very soon. Speaking of Unreal Engine, I've got a few more videos on the pipeline working with virtual production. I've got my green screen set up. I've got a couple of people lined up that I'm going to try to start filming, do some photo scanning and start working on some of these short films some more. So I guess the biggest news of all is some changes to the channel that I am pretty convinced I should make. I've kind of struggled with content in the past because all of the things that I make videos about are things that I'm just learning as I go and I don't really talk about things that I am actually good at and that I know very much. So that's going to change. I've decided that I'm going to start making some more content based around my programming job and some of the more DevOps and platform engineering things that I'm into currently. I think that that could be beneficial to the community. People learn more about that and I've got lots of experience doing these types of things and that's something I plan to start sharing. So I'm still going to be doing the Unreal Engine short film stuff so you don't have to unsubscribe if you don't want to see that. I'm going to try to make it about half and half but hopefully we'll also kind of build a subscriber base with some of the technical stuff that I'm going to enjoy making some videos about. So anyway, that was a quick wrap up. I just wanted to give an update and kind of get this video out there, rip the Band-Aid off so to speak of not making a video for a while. It's always kind of hard to get started again but I've got a big list of videos that I want to make so I'm just going to throw this one out there and move on with the next one. Thanks for watching.


So I'm going to talk about the same argument and its inception from groups. This is work I made with Yuvali Shai, Rafałowski and David. So our motivating questions as we come to this work is first, how short can a proof be? So as already a long series of work aiming to get proofs shorter and shorter, can we push farther this frontier? Our second question, can we build with its inception from 20th century typography? Those questions turned out to be related and we formalize them both in the generic group model offered by SHU at 97. For the first question, the argument that we construct while formalizing the generic group model actually used well-known assumptions from previous works such as the linear only encryption and for the second question, building with its encryption from generic group model is already a huge breakthrough compared to previous works. So the first question, how short can a proof be? There is already line of work initiated by gross 2010 and then by generic 2016 with 1000 bits which is highly practical. For the less than 1000 bits regime, there is one construction made by Bitansk et al with 500 bits, but it's impractical as it relies on classical VCP and there is a series of works started by the high et al, then for only et al, then for ne et al which ends with proofs with less than 500 bits, but they are impractical as they rely on obfuscation. So can we improve the succinctness of practical proof systems? Meaning building a practical proof system with less than 1000 bits for flanks? Turns out that we can, but at the price, we end with a designated verifier argument, non-negligible soundness and higher poor running time. For the second question, of obtaining witness encryption from 20th century cryptography, so current construction of witness encryption, assuming multi linear maps or unexplored algebraic structures, can we use a generic group in order to construct witness encryption? So this question is similar in flavor to a question raised by Impagliazo and Rudi many years ago. We can divide the cryptographic world into mini-trips, primitives that are constructed in the random oracle model, cryptomania primitives that are derived from key agreement streams and public encryption, and obfustopia primitives that require obfuscation. Impagliazo and Rudi ask whether we can obtain public encryption in the random oracle model and discover that the answer is no. We answer a similar question, we ask whether we can obtain witness encryption, primitive so far constructed only with obfuscation, with the generic group model that has a cryptomania flavor. Turns out that the answer is yes, assuming plausible but unproven hardness approximation hypothesis. Let's dive deeper. Our first goal is to designate the verifier snark, or succinct non-interactive argument. In this snark, we have the poor verifier and the verifier, and the poor verifier wants to convince the verifier about the validity of some claim. In order to do so, we send him a short poor file, and snark wants the poor file to be as short as humanly possible. And to do so, we allow a generation of common reference string used by the verifier and the prover at the prep processing phase, as well as the secret state ST, that only the verifier can use, that's why it's a designated verifier setup. In addition, we demand of course complicity, so if X and W are in the relation, the verifier is convinced with high probability, and soundness, if the malicious prover is efficient and X is not in the language defined by R, the verifier should reject with high probability. Our mindset as we come to this question, in contrast to previous walks, so previous walks, focus on publicly verifiable snark in bilinear groups, and we want to beat the succinctness, we want to get less than 1000 bits proof length, and we want to use less structure, so using only standard groups. In order to do so, we are willing to compromise designate the verifier snark or laconic argument and not publicly verify the snark like previous walks, we are willing to compromise on the soundness error, most crucially we are willing to compromise on imperfect completeness, this is the first work as far as we know that checks this relaxation of imperfect completeness, and we are also willing to compromise on over and verifier complexity, nonetheless as we'll see soon, our constructions are highly practical in summary life scenarios. Our second goal is witness encryption introduced by Gael Detell, so in witness encryption, which is defined with respect to a relation R, we have the function encrypt that gets message to a encrypt encrypt and an instance X, it outputs a ciphertext that is unfet to a function encrypt that gets the ciphertext and a witness W, who requires that the encrypt recovers the message M only when X and W are in the relation, and in case where X is not in the language defined by the relation R, we demand semantic security. So our theoretical contribution is that we present a witness encryption construction that relies only on the generic work model and honest of approximation hypothesis, this honest of approximation hypothesis may be proven unconditional in the future and thus cryptography speaking, our witness encryption relies only on the generic work model, this rolls out unconditionally rolling out witness encryption in the generic work model, unless there are some serious advances in approximation algorithms, which is very surprising because similar rolling out results in the generic work model are known to similar flavor primitives such as identity based encryption, and in addition, we present new avenue for witness encryption constructions that may lead to better results in the future. In the practical frontier, our design to verify a snag requires only 512 bits compared to the 1024 bits at goal 16, it requires only two group explanations, so 10 times faster than goal 16. However, it does require a relatively large common referencing and slow overtime, which is still acceptable for relatively small Boolean circuits, as we'll see soon enough. Thus, this design to verify a snag is very attractive when the verify is weak or somehow energy constrained, and the relation R has small Boolean circuits. For example, if we look on a Boolean circuit that computes a Goldrich one-way function, and as shown by Bortusk et al. recently can be done with 1500 wires, we require 34 megabytes of common referencing, only a few seconds of moving time, and for some of 1 over 128, the verifier runs in one tenth of a millisecond, and requires six megabytes of look of table. We refer to the paper for more discussions about the efficiency of our constructions under a various parameter setting. So, if you look on the world map succinct non-interactive arguments, we first have the grow 16 snag, it is in the linear group setting, and relies on linear PCB with negligible sounds and perfect completeness. In the linear group type, we have two candidates offered by Witanski et al. The first one is eight elements and relies on linear PCB, and the second one has two elements and relies on classical PCB. Our first new construction has two elements, but it relies on linear PCB and not on classical PCBs, that's the concrete efficiency that it presents, and it also has extremely fast verification, assuming that the setup algorithm generated a look of table with the size square root of the circuit size, or linearly in the circuit size for perfect completeness. Our second construction is a laconic argument with negligible soundness, and only two elements. This is the first laconic argument with two elements and negligible soundness. It does rely on classical PCB, and suffers from non-disabled completeness error. Our third construction, and perhaps the most interesting from a theoretical perspective, is a laconic argument with only one group element as an answer, negligible soundness. Again, it works in a linear group type, and has non-disabled completeness error. It uses unproven but plausible hypothesis regarding the occurrence of approximation of distances in linear codes, but it does imply that the execution scheme is no further assumption. So now let's dive deeper into how we are able to obtain all these constructions, starting with the completely efficient two elements designated the very first mark. So, our first point in this journey is linear PCB, introduced by Shietel, and later developed by Bitansky et al. So linear PCBs are defined over a field F with respect to relation R, and we have the povers that generate a poof pi over the field F, and we have the queries that asks the pover k queries q1 till qk over the field, and then it generates, in addition, a secret state st. Next, and we have the decision procedure that gets the specific instance, the secret state st, and also the result of all the inner product of all the queries with the poof, and then it should output accept or reject any demand, completeness, and tenders in the usual manner. So what is the connection between linear PCB and snug? So Bitansky et al. introduced a generic compilation scheme for one query linear PCB to one cipher text snug that works as follows. So in the linear PCB world, we have the povers that output the poof pi, and we have the verifier that first asks a query q, and then gets the inner product of this q, and pi and decide whether to accept or reject. In the snug world, we have the preprocessing phase that would write q in the sky, but it would write the encryption of all the elements of q as a CRS with the public key. Now the pover will be able to compute the result that is the encryption of the inner product of q and pi, and is able to do so because we use linear only encryption, meaning encryption schemes that only allows additive homomorphism to happen, and not other types of functions over the site, over the original plaintext. Now the verifier will know the secret key as well, so he would be able to decrypt the answer and call the original linear PCB decision procedure. So as we'll see, we use some variant of algorithm encryption, meaning that we need two group elements in order to encrypt one answer. So we are searching one query linear PCB that does not rely on PCB, unfortunately, as can be seen from this table, every known linear PCB in the past either has more than one query or relies only on a classical PCB. So we need to get some new linear PCB that has only one query and does not rely on classical PCB, and we do so by presenting a packing technique. So what is the intuition? So says that we have a k-query linear PCB, the verifier asks question q1 till qk and gets an answer k answer a1 till ak. And now let's assume that the linear PCB are bounded, meaning that for every possible randomness by the query algorithm and for every possible honest proof generated by the prover for every instance, we have the attribute that if we look what the answers are over the integers, all the answers are smaller than some small integer b. If this is the case, we can simply pick all these answers into one. How do we do it? We'll simply send one query. So this query would be a geometrical series of all the queries with weight with the suitable factors of b. And now we will get a single answer and now since we know that for the honest prover case, all the original a1 till ak are less than b, we're able to get this number and extract from a1 till ak and call the original verification procedure. So this is the intuition. And now what linear one encryption we use. So we need encryption since it works in the generic group model and is homomorphic. One candidate is El Gamal, which as I said has two group elements for one ciphertext. And in order to get an additively homomorphic version of El Gamal, because El Gamal is only multiplicatively homomorphic, we'll send the encryption of g to the power of the relevant query for every query vector q. And this variant is proven to be a linear one encryption in the ggm. Now since the plaintext are g to the power of the query instead of the query itself, the verifier after the scripting would get an answer g to the power of the relevant ai. And now this means that unless the decision procedure on a1 till ak is linear, the verifier must solve the discrete log problem, which is a bit of an issue and as we'll discuss later. And so we refer to the paper for the modified pecking techniques that actually preserve the summits because here we present only the intuition. A two query variant of the Adam or linear TCP and discussion of why the Adam or linear TCP is bounded and optimizing verifier can be a tail bound and preprocessing lookup table, in particular how we end up with this discrete log problem that the verifier needs to solve. Our next contribution is laconic argument with two group elements from hardness of approximation in code. So our motivation is to get a negligible soundness, but the previous two elements now that we've seen has noticeable soundness error. And this is somewhat inherent, right? Because the verifier had to solve the discrete log problem. However, if the verifier had the linear decision procedure, it could be made negligible. Unfortunately, growth can prove the barrier that any for any hard language L, one query linear TCP for it with linear decision procedure is unlikely. Fortunately, his lower bound assumes a negligible complete error and we are able to overcome this barrier by presenting one query linear TCP with noticeable complete error. How do we do it? We start with something that called gap minimum weight solution problem. So in the instance of the beta gap minimum weight solution problem over field F as a matrix A vector B and an integer D such that in the yes case, there is a vector V with humming weight at most D such that AV equals B. And in the now instance for every vector V with humming weight less than beta times D, AV does not equal to B. We prove a theorem which is a directed adaptation of theorem proved by Harsha et al. That for every finite field F such that the size of the field is less than exponential in N, every constant C greater than zero and beta log to the power of C of N, this problem is NP hard. Now how do we go from instance of this problem to a one query input dependent linear TCP which would lead later to two element laconic argument. So we generate R which is a randomly generated vector, E which is a small noise vector. So every coordinate of E is zero with high probability and random otherwise. And the input dependent query is RA plus E and the verify would expect the inner product of R and B. Why does it work? So in the yes case when AB is the minimum weight solution problem instance, there is a low humming weight factor V such that AV equals B and this vector will be used as the piece linear TCP proof. Why does it work if we take the query and compute the inner product of V with V, we get your RB plus EV. EV is most probably zero because ENV are those very sparse vectors and the inner product of R and B is indeed the answer that we expect as the right answer. In the now case, there is no low humming weight vector V such that AV equals to B. And then the proof has two strategies. Either it be X a vector V such that AV equals B, but this vector is dense. And in this case, the inner multiplication of ENV would be random because now V is dense. Either it shows a vector V such that AV is not equal to B and then this element would be random. And again, the verify wouldn't get convinced except negligible probability. So now we can take this one query input dependent linear TCP and pack it with the Elgamal encryption in a Bitansky et al. compiler stream and get two elements, laconic argument with negligible soundness. But we want to push farther. We want to get witness encryption. So what is the connection between witness encryption and all of those laconic arguments we talked about so far? The connection is something that called predictable arguments. So predictable arguments introduced by Faunu et al. At every round, there is exactly one predictable answer that may cause the verify to accept. All the rest of the answers cause the verify to reject. So Faunu et al shows that predictable argument is perfect for completeness and negligible soundness imply witness encryption without further assumption. This is a result that we extend to the noticeable completeness case. So if we had laconic argument which is predictable in the generic work model, we would have witness encryption. So we didn't just see a predictable argument. So recalls it in the one query input dependent linear TCP. We had one answer that we expect. However, after encrypting it with bitansky et al compilation, now we practically expect every possible encryption of this answer. So it's rendering our protocol to be unpredictable. Maybe we can do something like encrypting all the query in the exponent, which is a deterministic method. So the said answer is no, because this might leak the error used in the query. So recalls it in the query. We used the matrix A as it belongs to a minimum weight solution problem instance. But maybe there is some sparse vector V, such that AV equals zero. In that case, the prover would just take the query and compute the inner part of the query with V. Now he would have your ENV. Since ENV are sparse, this would be zero with some non-negligible probability, and otherwise it wouldn't be zero. And the prover can look at this expression and learn what the error vector is, and thus break the scheme. So if we knew that for every low ham and weight vector V, AV is not equal to zero, this attack would be invisible. And this is the exact intuition that led us to look on the minimal distance problem. So for instance of the beta gap minimal distance problem over field F as a matrix A and integer D, subject in the yes instance, the code span by the matrix A as distance of at most D. And in no instance, the code span by the matrix A as distance of at least beta D. What is known about this problem? So if there is already a long theorist of work, aims to measure how much this problem can't be approximated, starting with demeritel, continuing with chengetel, and latest by austenotel. And the last error result shows that for some vector which is omega floggen, and every field with prime size polynomial in M, there is a quasi-polynomial time reduction from set to the minimal distance problem with gap beta. We need something which is extremely similar, we need it for the same gap parameter, omega of floggen, and some field which is slightly larger, so quasi-polynomial in N, there is a polynomial time reduction from set to the minimal distance problem with gap beta. This hypothesis looks feasible to experts in the field that doesn't see any barrier to prove it unconditionally in the future. And in addition, the positive results of approximation of the minimal distance problem are extremely far from this gap parameter and are more close to a linear issue. So that's what causes us to believe that this hypothesis may be proven unconditionally in the future. So how do we go from minimal distance problem instance to a predictable argument? First, we generate RNC, which a randomly generated vector, S, which would be a random scalar, and E, like before, small noise vector, so every coordinate is zero with high probability and random otherwise. And here H is the parity check matrix of A from the minimal distance problem instance. Now we include it in the exponent, so the encryption is deterministic, and the very firm message is G to the power of this Q, and then C in the clear. We expect the answer G to the power of S. So we analyze this predictable argument in the generic work model, meaning that all the prove can do is just taking linear transformation of the query and test it. So what we have to prove is that in the S case, there is linear transformation that would yield G to the power of S, and in the no case, every linear transformation that the prove applies on this query wouldn't give him his information as it will be random. So let's look about why it case. So in the S case, there is a low Hemingway vector V such that Hv equals zero, because H is the parity check matrix of A and V would be a low rate cold world of A. This vector is just a proof strategy. So if we take now G to the power of the original Q and inner product with V, we get finally G to the power of S times the inner product of C and V plus the inner product of E and V. Like before, the inner product of E and V is zero with large probability, and now the prove knows this term, and you also know the vector V in the clear, and you know the vector C in the clear since we sent it alongside the query, and thus it can compute G to the power of S. In the no case, there is no low Hemingway vector V such that Hv equals zero, and thus the prove can just try to apply some linear strategy. So the first option like before is to pick a dense vector V such that Hv equals zero, and then this result would be random, right? Because the inner product of V and V now that V is dense is most probably random. These other strategies to pick a vector V such that Hv isn't zero, and now this term would be totally random. So the prove didn't learn anything, and this is the intuition to the service we provide the formal proof in the paper. So back to witness encryption using Frono Hotel Generic Compilation, this predictable argument implies witness encryption. In the paper, we show that any one element for chronic argument can imply witness encryption as long as it has negligible service, and something that we call generic verification procedure, meaning that the verifier can be formalized as a generic group model algorithm. So to summarize, we show the first practical design of the verifier snubs with two group elements. We show the first two elements of the chronic argument with negligible service error, and we showed how to get witness encryption in the generic group model under a plausible complexity theoretic hypothesis. There are some open questions. So first, as I stated before, our design internet verifier snubs relied on the Hadamard linear capacity, which has a quadratic overall complexity. Maybe we can do better. Maybe we can present two elements of the chronic argument with perfect completeness, or improve the witness encryption result and prove it unconditionally in the generic group model. Thank you.


Okay, so, okay, now yes. Hello everybody, welcome to this DrupalCon. Today we are talking about observability, so we are looking how to understand how our Drupal instance is doing, just looking from the outside. I'm Luca from Italy. I'm a Drupal, mainly Drupal and PHP developer. For an Italian company called SparkFabric, here you can find some of my social. The name is everything the same, so it's easy. Just a couple of words about the company, SparkFabric. We are a tech company. We do a lot of custom application development, mainly focused on cloud-native infrastructure. So we develop application that will be deployed on some cloud vendor, also Drupal. So we have a lot of Drupal instances on the cloud. For that, we are a partner of all of the main cloud providers, also Alibaba in China. Basically, right now, we are all working with distributed systems of some form because we have microservices, containers, cloud, serverless, addless, message queues, and so on. And mainly a lot of combinations of those technologies. So all of those complexity increase the number of failures that our systems may encounter in production. And because in a distributed environment, all systems can be implemented with different technologies or different languages or systems, it's complex to understand, usually it's complex to understand when a problem occurs, where it occurs, and it's difficult to predict possible failures in the future. To overcome these problems, we can use this technique that is observability, that is a measure of the internal state of the application just looking from the outside. So we don't want to log in in every component of our infrastructure, just to understand some where a problem is. We just want to look from the outside. And we need more data other than classic metrics like CPU and memory, we need the data from the inside of the application to understand how it works and how it behaves. Observability is based on three pillars, basically. So we have logs, metrics, and traces. And during this presentation, we will look, we will understand how to expose logs, metrics, and traces from our Drupal websites to observe it. And the end result of what we want to achieve in this, with this talk is to have this dashboard that shows us, for example, the head map of the request time and response time of our application. For example, the number of user registered, the number of nodes created, the distribution of logs during time, and the details of logs from Drupal. And for example, from external microservice. So we want to have all those data in a single dashboard to understand how the system works. Okay, to do that, we need different tools, different technologies to collect logs, traces, and metrics. In this presentation, for logs, we will use monologue, prom, tail, and locky. Later, I'll show you everything. Metrics, for metrics, we will use Prometheus. For traces, we will use OpenTelemetry and Tempo. And Grafana is the tool we will use to create the dashboard to show all the metrics collected. Grafana is an open source project and it allows you to query, visualize, alert, everything regarding logs, metrics, and traces, no matter where they are stored. So you can collect data from basically everywhere. So let's start with logs. Okay, logs are about storing specific events that occurs during the execution of our code. To do that, we are using monologue. Monologue is a standard PHP library. Library is used for every kind of PHP project like symphony. And it can be used in Drupal using a contrib module that it's called monologue. And with monologue, you can send logs, for example, to files, to sockets, to syslog, inboxes, Slack, whatever. And monologue implements the PSR3 interface, so it's compatible with the logger of Drupal, of course, Drupal, so we can interoperate without any problem. So first of all, you have to download the module. You can do that using Composer because you need both the module and the library that implements all the logging. Then after enable it, you have to configure monologue. The monologue module for Drupal doesn't have an user interface, so you have to configure it manually using a YAML file, a YAML file. For example, this monologue.services.yaml in the sites default folder. In that file, you have to specify the handler that will manage your logs. In this case, we are using this rotating file handler that will save a log file per day. And then in this example, after 10 days, it will delete the oldest one and create a new one, and will log everything from the info level to fatal error and so on. After that, you can create the define handlers, so sorry, channels. So in this case, we are logging all logs. So we are using the default channel. You can log for different channels to different places if you want. In this case, we are using default. We are using this rotating file handler we defined in the previous slide. We are using Gison as the format of the log, and we will say why. And then we are defined a set of processor that will alter the log before it will be written somewhere to add some useful information like the current user or the IP or the line and the file where the log is generated. And with this configuration, we have to add this file to the set of service container in Drupal. So in the settings PHP file, we have to add this file to the YAML of the service container. And if we wrote this line somewhere in our code, so we log using DrupalCon as channel, a notice with some text. What we have in the log file, for example, the one of today, we have all the information in a Gison format. Gison is useful because we can query all the information easily. So we don't have to parse the line because it's in a structured format. And if you want, we can add more processors to monologue to add other informations to a log line. For example, in a cloud infrastructure, you can add the name of the pod, the ID of the cluster. For example, the ID of the order in any commerce website to filter all the logs probably generated by the user with an order, and so on. The problem here is that in a cloud native environment, we have different servers, different pod pods. And we need to extract the logs from every instances of our infrastructure. And we have to discover them, scrape them, and send to a log collector. So we are using PromTail that is an agent. It's from Grafana that can scrape and extract logs from files, for example, and send to this other project that is called LOKI from Grafana again that is a log collector. So LOKI is the storage that persists logs. So again, in a cloud native environment, we will have an instance of PromTail deployed on every server or on every pod that sends data to an instance of LOKI somewhere. Configuring PromTail is quite easy. The important part is that you have to specify the path where the logs are in Drupal. If you want to extract some information from the Gison and expose it as label to LOKI and Grafana, and then the endpoint of the LOKI collector that will aggregate and store all the logs. At the end, on the Grafana dashboard, we can create a panel like this with all the logs generated and recorded in Grafana itself. So basically, we are using monologue to generate logs to the file system, then PromTail that read the logs, send to LOKI, and then we are using Grafana to query and show all the logs. Okay, then the second pillar of observability is metrics. Metric are a measure of a specific value in a specific time. For example, we can go back to Prometheus later. For example, the number of time we receive a request, how much time we spend creating a response, how many user or node has been created, the number of modules with security issues, the number of orders in any commerce website, and so on. So specific values that changes over time, basically. To do that, we are using Prometheus. Prometheus is a time storage database. That collects events with the specific timestamp when they occurs. Prometheus is an open source software, is, has been developed by SoundCloud, but right now is an independent open source project. And it was the second project incubated by the CNCF, the Cloud Native Foundation, just after Kubernetes. Okay, to expose metrics to Prometheus, we are using a module for Drupal called Observability Suite, or abbreviated O11Y. So this is a standard Drupal module, so I can install it using Composer and then enable it using Drash. And for this example, we are enable the metrics and metrics requests sub-module. Then we have to configure it. For example, we can enable the node count and user count collectors to expose the number of users and number of nodes in our Drupal. And for the node, we can specify the content type we want to expose. And then, the slide is a little truncated, but then we have, in this example, to enable the access of the Prometheus data for the anonymous user, so an external system can queries data on this slash metrics endpoint. So the module will collect data about, in this case, users, nodes and requests and expose them to a slash metrics endpoint of our Drupal website. And because PHP doesn't use an application server, so it doesn't store anything anywhere, we have to store data somewhere between requests. And in the default implementation, we are using database but the module supports also memcache or redis if you want to store all the information in that system. The main observability metrics module expose to Prometheus data about the PHP info, the number of nodes, the number of users, the number of item in queues, if you use the QAPI of Drupal, the number of extensions enabled. But there are a set of submodules you can install to provide metrics about caching, configuration, database requests, update, commentate. It's quite easy to route a new module to collect and expose some other kind of information that you may need. If you enable the module, configure it and then go to slash metrics endpoint, you will see this text response that is a standard Prometheus format that in this case, it expose an histogram that is a data structure in Prometheus. Let's say, for example, that the user slash admin slash create, sorry, user dash admin as create route, and for a set of time bucket, this is in seconds, how many requests or many response takes this time to be returned? So for example, we have four requests that takes two seconds and half, six that takes five seconds and so on. With all those information, we can, for example, generate heat maps that expose all the response, again, from five milliseconds to 10 seconds, and here we can see the point collected by Prometheus. The more lighter is when we have more data in that point, and if color is near zero, our site is faster, is near 10 seconds is lower. So we can understand just by looking at this graph if we have some problems with the response time, basically. Prometheus, configuring Prometheus is quite simple in our case. We just give this job name, says that Prometheus will call the slash metrics and point every five seconds and the URL, basically, of the website, of our website. So again, we are using the observability metrics module to store metrics to the local database, then Prometheus, every five seconds, collect them and send them to, and then we are using Grafana to create dashboard on the data. Okay. The last pillars is traces or distributed traces because we have probably a distributed system and with distributed traces, we can understand all the request response flow, the all of the data pass through from the beginning to the end. For collecting traces, we are using this project that is called open telemetry, that is quite a new project. It's created after the merge of open sensors from Google and open tracing from Uber. Also, open telemetry is incubated by the cloud native computing foundation and it can be used to collect metrics, logs and traces. We are using it only for traces in this case because the PHP implementation of the SDK for metrics and logs are not ready. So we are just using it for traces. But it has become the standard for collecting all those information about observability and all main cloud vendor are adopting it to collect the data. As I said, the logging support has not yet implemented for PHP. Metric and tracing are in pre-alpha status. Tracing is usable metrics not yet. For example, the JavaScript SDK is more mature. Okay. Open telemetry is made of different components, different pieces. One of that is the open telemetry collector. That is basically a middleware that will receive all data from your application and it can deliver data to other system. This is useful because it is vendor agnostic so you can switch the storage of tracing's log and metrics but all of your code stays the same. So it's useful to use. And in our example, we are using tempo to store traces. So we are using open telemetry collector to collect the traces. Then we send traces to tempo that is a storage engine for tracing. Also from Grafana project. So it can be used to store and then query traces information. The observability suite module has a sub module to deal with traces. So we can enable it, observability traces. And because usually you want to have only one library that instrument your code to extract information. And maybe you will have different modules that will deal with the code to extract the data. We create a third project that is called Tracer. That contains all the logic that instrument the application and then different plugins that sense that traces to different backend. One of that is the observability suite module. The other is the web profiler module that is useful on a local environment when you develop a website. So to configure which backend to use, you can specify it in the settings.php file. Here says that the Tracer plugin in this case is the observability one. If you want more information about how this works, there is a blog post on the Spark Fabric website to explain all the integration between the observability module, the web profiler and Tracer. So we are using Tracing to understand the journey of our quest and the response through a distributed system. And in this case, to give you an example, we are using a Drupal 10 website that renders a page with data from external microservice. So basically, it's quite simple. We have a custom controller that renders this route microservice one. The controller contacts an external service via HTTP, takes the response and renders the response on the page. So the controller is quite easy. So we use the HTTP client service from Drupal car to call an external microservice. This is written in Go just to do a different, using different technology. Then we take the contents of the body of the response, log the message and then return a Drupal render array that prints the message. To expose all the metrics, all the traces, sorry, we collect two graphana tempo, two open telemetry collector and then graphana tempo, the configuration of open telemetry collector is quite easy. Again, we are using HTTP as communication protocol. We are sending all the collected traces in batch to an instance of tempo. Quite easy. The observability suite automatically instrument your application. You don't have to do anything. If you just want traces about the events dispatched by the event component of Drupal, tweak templates, HTTP calls, database queries and services. So every time Drupal request a service from the service container. But you can also trace your own code very easily. To do that, for example, after you receive the request, the response, sorry, from the external microservice, you can call some complex method. And in this complex method, you retrieve the tracer service, create a new span with some labels and some values, then do the hard work. Okay, sleep one second, for example, and then stop the duration of that span. After do that, if you go to graphana to the tempo, to a panel created from tempo data, we can see that there are a lot of lines before and a lot of lines after. But at some point, Drupal calls its controller, the controller that will render that page. The controller will do an HTTP call that will last one seconds. Then we see a different, this is in different color because those two traces comes from the Go microservice that takes one second, for example, to complete. Then some services again from Drupal and then this custom trace that takes one second with sleep. So we can understand all the flow of the request between all the services and layers of Drupal, then external services, then again the response will reach Drupal again and all the services and twig call and database call to render the page to the user. So in this case we are using the tracing module, sends data to open telemetry collector, that sends data to tempo and then using graphana to collect all information. This is useful, for example, if some error occurs. So for example, this is another controller that calls another endpoint in some other microservice that returns an error. So for the user we need to print some pretty error to say them that something is wrong. But internally we have to understand why these microservice, for example, return an error. This is easy because all the requests between Drupal, all the microservices and return contains a trace ID that correlates the same request in every layer that will be passed. For example, this slash microservice 2 that return this error has this trace ID. If I look for the same trace ID in the logs of the microservice, for example, I can say that the endpoint 2 is not implemented. So we are calling an endpoint that does not exist and we can easily understand where is the problem in this case. Without this trace ID correlation in a production environment where the logs are many, many more, maybe it's difficult to understand which log of the microservice is correlated with a log in Drupal. We can do this easily because we can create a processor for the monologue module we saw in the beginning to add the trace ID to every line we log in the log, for example. The observability module do that for you. So there is a processor for monologue that add this trace ID to logs. So in the set of processors of monologue we can add this tracer processor that add the information of the trace ID generated. And then we can configure Grafana to link from logs to metrics to traces. And then we can easily found the information we need. And the same information, so the trace ID of a page is added both to the web profiler toolbar in this trace ID line and also as a response either so you can just found it in the response of every page. Okay, now I just want to show you a quick demo, for example. So this is a standard Drupal 10 website with the umami profile. And if we go, for example, to this microservice one endpoint we saw that we received this data from Remote Microservice in the dashboard created by Grafana. Okay, for example, this line has been logged from the controller that renders that page with this data from microservice. And here if we click on this tempo link on the trace ID in the log we can see all the information that has been traced from the internal of Drupal and then to the microservice. And here there are a lot of information but basically we can see all the services that Drupal requests from the service container starting from the module handler then the stream wrapper and so on. So here we have the name of the service extracted from the service container. Then at some point Drupal performs a query to the database. And then if we go, okay. And at some point as we see in the slide it calls the controller that renders that page. The controller will use the tracer tracer service because it's injected in the constructor. Then it performs this HTTP call to microservice N.1. Then the microservice itself is instrumented to expose traces to tempo and grafana. So this N.1 and this sleep trace comes from the microservices in Go. Then for example, because in the code just after we receive the response from the external microservices, microservice will log it. So we need to take the logger factory from the service container. We see that just after the response of the microservice our code is requesting the logger factory service that probably request the monologue handler rotating file service and so on. Then we trace our complex method that takes one second to complete. And then probably we have this event that is the kernel view, that is the event Drupal dispatches to render the page. And then at some point, okay, at some point, Twig renders the page.html.twig and so on until the end of the page because there are a lot of services called during a page request. And this is the dashboard. So here we have all the request response time from our Drupal instance, for example, the number of users created. So if I go to the website and add a new user on the Grafana dashboard that will refresh every five seconds. Right now we have 12 users. If everything works, the next refresh will have 13. So we can see in real time all the metrics and the logs and if you want traces of our system, if we have a different dashboard like this that measures the CPU, memory, network and so on from our cluster, for example, we can correlate maybe a spike in CPU and memory with a spike in node creation or user login or errors or whatever without logging to Drupal or logging to the server to extract the logs just from a single point. Okay, if you want all this project, so all the Docker stack that contains all the services, Tempografana, Locky, it's online on this repository, so you can use DDEV to spin up all the stack locally. In the repository there is also the go code of the microservice if you want to look at it and also an example, everything uses, using this, maybe it's too small, but using a library from Grafana that is called K6 that is useful for doing stress test and performance measurement so you can route using JavaScript. A test plan and then execute it to stress test your server. If you go to the K6 folder and run, okay, it's maybe, okay, if your K6 run scripts.js.js and go to the dashboard, you will see data flow because we are creating logging, creating nodes, perform call to microservices and so on, so you fill the dashboard with data without going to Drupal and create it to demonstrate that everything works. Okay, so there are some questions. We have five minutes. Hi, thanks for the very interesting talk. I have one question. What effect do you observe with that in terms of performance? Okay, of course there are some impact on performance instrument and application. I don't have specific data about it, but of course some CPU cycles goes to do performance instrumentation. You can optimize this using things like wrote logs to file or send trace to a collector because it's in the same server where you are. So this is quick. And then send logs and traces and so on to the real storage after. So you can optimize the time when you spend, okay. Thanks for the presentation. Just a quick question. Is there any reason why you overlooked something like Splunk for log collection? Okay, you can do the same with Splunk. It's the same. We are using Grafana just because we can use the dashboard of Grafana to create everything we need in the same place. But you can deliver logs to Splunk and then query them from Grafana. So you can use Splunk just for storage and then use Grafana to query logs from Splunk. Okay. I wanted to ask which of these tools needs subscription? It's everything open source. So you can use Grafana Cloud. It is a paid service if you don't want to manage all the components. So they will provide you an instance of a tempo locking the Grafana dashboard, the Prometheus, on cloud, and you have to pay for that. And instead, if you want to use the open source version of everything, you have just to deploy them somewhere. It's everything free. How do you deal with sanitizing log data, like personal information? Good question. For example, you can route a processor to remove all data in a processor. You receive a log record from Monologue with all the information logged and structured. So you can remove, for example, everything is sensitive from logs. The module doesn't do anything because we don't know the effective message you are logging. Hi. Does the observability module provide any sort of JavaScript error handling? So traces or pickup errors on the client side to be shipped? Not at the moment. Only back end. Thank you. Okay. I think time is over. So join us to the Contribution Sprints because every project in Drupal needs some hands and fill the session survey on the mobile app. Thank you.